diff options
author | deepa-chaudhari | 2015-06-02 22:34:08 +0530 |
---|---|---|
committer | deepa-chaudhari | 2015-06-02 22:34:08 +0530 |
commit | af0232ace0890ee6e8afc97c0fefd03a224c42bb (patch) | |
tree | 6ba0b57fe30456f26362a6713718280440f8c2d9 /Connections/Shear/Finplate | |
download | OsdagLive-af0232ace0890ee6e8afc97c0fefd03a224c42bb.tar.gz OsdagLive-af0232ace0890ee6e8afc97c0fefd03a224c42bb.tar.bz2 OsdagLive-af0232ace0890ee6e8afc97c0fefd03a224c42bb.zip |
Initial checkin
Diffstat (limited to 'Connections/Shear/Finplate')
57 files changed, 19059 insertions, 0 deletions
diff --git a/Connections/Shear/Finplate/.txt b/Connections/Shear/Finplate/.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Connections/Shear/Finplate/.txt diff --git a/Connections/Shear/Finplate/2Dmodel.py b/Connections/Shear/Finplate/2Dmodel.py new file mode 100644 index 0000000..98d1b12 --- /dev/null +++ b/Connections/Shear/Finplate/2Dmodel.py @@ -0,0 +1,231 @@ +''' +Created on 10-Nov-2014 + +@author: deepa +''' + +#from OCC.Display.SimpleGui import init_display + +from exampleSimpleGUI import init_display +from OCC._Quantity import Quantity_NOC_BLACK +from ISection import ISection +import numpy +from OCC.Graphic3d import Graphic3d_NOT_2D_ALUMINUM +from weld import Weld +from plate import Plate +from bolt import Bolt +from OCC.Quantity import Quantity_NOC_SADDLEBROWN, Quantity_NOC_CYAN1 +from nut import Nut +from OCC.BRepAlgoAPI import BRepAlgoAPI_Fuse +from OCC.AIS import AIS_Shape +from OCC.TopAbs import TopAbs_EDGE +from OCC.TopExp import TopExp_Explorer +from OCC.TopoDS import topods, TopoDS_Shape +from utilities import osdagDisplayShape + + +display, start_display, add_menu, add_function_to_menu = init_display(backend_str="pyqt4") + +# ISection COLUMN +origin1 = numpy.array([0, 0, 0]) +uDir1 = numpy.array([1.0, 0, 0]) +wDir1 = numpy.array([0.0, 0, 1.0]) +t = 8.9 +weldThick = 8 +iSection1 = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) +iSection1.place(origin1, uDir1, wDir1) + +# ISection BEAM +uDir2 = numpy.array([0, 1.0, 0]) +wDir2 = numpy.array([1.0, 0, 0.0]) +d = t/2.0 + weldThick +origin2 = numpy.array([0, 0, 500]) + (d+7.55) * wDir2 +iSection2 = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 400) +iSection2.place(origin2, uDir2, wDir2) + +# WELD +weld = Weld(L= 300,W =iSection2.t, T = 8) +plateThickness = 10 +uDir3 = numpy.array([0, 1.0, 0]) +wDir3 = numpy.array([1.0, 0, 0.0]) +origin3 = (iSection1.secOrigin + + iSection1.t/2.0 * iSection1.uDir + + iSection1.length/2.0 * iSection1.wDir + + iSection2.t/2.0 * (-iSection2.uDir)+ + weld.W/2.0 * (-iSection2.uDir)) +#origin3 = numpy.array([0, 0, 500]) + t/2.0 *wDir3 + plateThickness/2.0 * (-iSection2.uDir) +weld.place(origin3, uDir3, wDir3) + +# PLATE +plate = Plate(L= weld.L,W =100, T = 10) +uDir4 = numpy.array([0, 1.0, 0]) +wDir4 = numpy.array([1.0, 0, 0.0]) +origin4 = weld.secOrigin + weld.T * weld.wDir +plate.place(origin4, uDir4, wDir4) + +# BOLT BODY +bolt_T = 6.0 +origin51 = (plate.secOrigin + (- + plate.T/2.0 - bolt_T) * plate.uDir + + plate.W/2.0 * plate.wDir) + + +uDir5 = plate.wDir +wDir5 = plate.uDir +## Bolt1 +bolt1 = Bolt(R = 10.0,T = bolt_T, H = 35.0, r = 4.0 ) +bolt1.place(origin51, uDir5, wDir5) + +## Bolt2 +bolt2 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) +origin52 = origin51 + 50 *plate.vDir +bolt2.place(origin52, uDir5, wDir5) + +## Bolt3 +bolt3 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) +origin53 = origin51 - 50*plate.vDir +bolt3.place(origin53, uDir5, wDir5) +bolt_list =[bolt1,bolt2,bolt3] + +#nutbody = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) +# NUTBODY +## Nut1 +nut1 = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) +uDir = uDir5 +wDir = wDir5 +nut_Origin1 = origin51 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) +nut1.place(nut_Origin1, uDir, wDir) + +## Nut2 +nut2 = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) +nut_Origin2 = origin52 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) +nut2.place(nut_Origin2, uDir, wDir) + +## Nut3 +nut3 =Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) +nut_Origin3 = origin53 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) +nut3.place(nut_Origin3, uDir5, wDir5) +nut_list = [nut1,nut2,nut3] + +def colorTheEdges(box, aDisplay): + #ais_shape = AIS.AIS_Shape(box).GetHandle() + Ex = TopExp_Explorer(box,TopAbs_EDGE) + + while Ex.More(): + aEdge = topods.Edge(Ex.Current()) + ais_shape = AIS_Shape(aEdge).GetHandle() + ctx = aDisplay.Context + ctx.SetColor(ais_shape,Quantity_NOC_BLACK,True) + ctx.SetWidth(ais_shape,3.2) + ctx.Display(ais_shape) + Ex.Next() + ctx.Display(ais_shape) + +# Call for createModel +iSectionModel1 = iSection1.createModel() +iSectionModel2 = iSection2.createModel() +weldModel = weld.createModel() +plateModel = plate.createModel() +boltModels = [] +colorbolts = [] +for bolt in bolt_list: + + boltModels.append(bolt.createModel()) + for colorbolt in boltModels: + colorTheEdges(colorbolt,aDisplay) + colorbolts.append(colorbolt) + +#color = Quantity_NOC_SADDLEBROWN, +nutModels = [] +for nut in nut_list: + nutModels.append(nut.createModel()) + +# def colorTheEdges(box, aDisplay): +# #ais_shape = AIS.AIS_Shape(box).GetHandle() +# Ex = TopExp_Explorer(box,TopAbs_EDGE) +# +# while Ex.More(): +# aEdge = topods.Edge(Ex.Current()) +# ais_shape = AIS_Shape(aEdge).GetHandle() +# ctx = aDisplay.Context +# ctx.SetColor(ais_shape,Quantity_NOC_BLACK,True) +# ctx.SetWidth(ais_shape,3.2) +# ctx.Display(ais_shape) +# Ex.Next() + +# +# Get Context +# +ais_context = display.GetContext().GetObject() +# +# Get Prs3d_drawer from previous context +# +drawer_handle = ais_context.DefaultDrawer() +drawer = drawer_handle.GetObject() + +drawer.SetIsoOnPlane(True) +# +la = drawer.LineAspect().GetObject() +la.SetWidth(4) +# le = drawer.SetLineAspect().GetObject() +hla = drawer.HiddenLineAspect().GetObject() +hla.SetWidth(2) +hla.SetColor(Quantity_NOC_CYAN1) +# le.SetLineAspect(Aspect_TOL_DASH,Quantity_NOC_YELLOW,4 ) +# increase line width in the current viewer +# This is only viewed in the HLR mode (hit 'e' key for instance) +line_aspect = drawer.SeenLineAspect().GetObject() + +drawer.EnableDrawHiddenLine() +line_aspect.SetWidth(4) +#drawer.SetLineAspect('Aspect_TOL_DASH') + + +# +drawer.SetWireAspect(line_aspect.GetHandle()) + +# Displys CAD Models. +# Complete CAD Model +isection = BRepAlgoAPI_Fuse(iSectionModel1,iSectionModel2).Shape() +weld_isection = BRepAlgoAPI_Fuse(isection,weldModel).Shape() +plate_weld = BRepAlgoAPI_Fuse(weld_isection,plateModel).Shape() + +plate_weld_bolt = plate_weld +for bolt in boltModels: + plate_weld_bolt = BRepAlgoAPI_Fuse(plate_weld_bolt, bolt).Shape() + +#bolt_plate = BRepAlgoAPI_Fuse(plate_weld,boltModels).Shape() +final_model = plate_weld_bolt +for nt in nutModels: + final_model = BRepAlgoAPI_Fuse(final_model,nt).Shape() + + +# colorTheEdges(final_model) +#display.DisplayShape(final_model, update = True) +colorTheEdges(iSectionModel1, display) +display.DisplayShape(iSectionModel1, update=True) +# +# colorTheEdges(iSectionModel2) +#display.DisplayShape(iSectionModel2,material = Graphic3d_NOT_2D_ALUMINUM, update=True) +# +# colorTheEdges(weldModel) +#display.DisplayShape(weldModel,color = 'red', update=True) +# +# colorTheEdges(plateModel) +#display.DisplayShape(plateModel,color = 'blue', update=True) +# +#colorTheEdges(boltModels) +#display.DisplayShape(colorbolts,color = Quantity_NOC_SADDLEBROWN, update=True) +# +# #colorTheEdges(nutModels) +#display.DisplayShape(nutModels,color = Quantity_NOC_SADDLEBROWN, update = True) +#display.SetModeHLR() +display.FitAll() + +#display.View_Front() +#display.View_Top() +#display.View_Right() +#display.View_Iso() +#display.FitAll() +start_display() + diff --git a/Connections/Shear/Finplate/Finplate0dot1.py b/Connections/Shear/Finplate/Finplate0dot1.py new file mode 100644 index 0000000..c8c539a --- /dev/null +++ b/Connections/Shear/Finplate/Finplate0dot1.py @@ -0,0 +1,938 @@ +''' +Created on 07-May-2015 + +@author: deepa +''' +from PyQt4.QtCore import QString +from PyQt4.QtGui import QMessageBox +''' +Created on 21-Aug-2014 + +@author: deepa +''' +import sys +from OCC import VERSION +#from PyQt4 import QtGui,QtCore +from ui_finPlate2 import Ui_MainWindow +from model import * +#from finPlateCalc import finConn +from finplate_calc1 import finConn +import yaml +import pickle +import logging +#from exampleSimpleGUI import init_display +from OCC.BRepAlgoAPI import BRepAlgoAPI_Fuse +from OCC._Quantity import Quantity_NOC_RED,Quantity_NOC_BLUE1,Quantity_NOC_SADDLEBROWN +from ISection import ISection +import numpy +from OCC.Graphic3d import Graphic3d_NOT_2D_ALUMINUM +from weld import Weld +from plate import Plate +from bolt import Bolt +from nut import Nut +import os.path +from utilities import osdagDisplayShape +from OCC.Display.pyqt4Display import qtViewer3d +from colWebBeamWebConnectivity import ColWebBeamWeb +from colFlangeBeamWebConnectivity import ColFlangeBeamWeb +from OCC import IGESControl + +from filletweld import FilletWeld + + +class MainController(QtGui.QMainWindow): + + def __init__(self): + QtGui.QMainWindow.__init__(self) + self.ui = Ui_MainWindow() + self.ui.setupUi(self) + + + self.gradeType ={'Please Select Type':'', + 'HSFG': [8.8,10.8], + 'Black Bolt':[3.6,4.6,4.8,5.6,5.8,6.8,9.8,12.9]} + self.ui.comboType.addItems(self.gradeType.keys()) + self.ui.comboType.currentIndexChanged[str].connect(self.combotype_currentindexchanged) + self.ui.comboType.setCurrentIndex(0) + + self.ui.comboConnLoc.currentIndexChanged[str].connect(self.setimage_connection) + + + self.ui.btn_Reset.clicked.connect(self.resetbtn_clicked) + + self.ui.btn_Design.clicked.connect(self.design_btnclicked) + self.ui.btnInput.clicked.connect(lambda: self.dockbtn_clicked(self.ui.inputDock)) + self.ui.btnOutput.clicked.connect(lambda: self.dockbtn_clicked(self.ui.outputDock)) + self.ui.btn_front.clicked.connect(self.call_Frontview) + self.ui.btn_top.clicked.connect(self.call_Topview) + self.ui.btn_side.clicked.connect(self.call_Sideview) + + self.ui.btn3D.clicked.connect(self.call_3DModel) + self.ui.chkBxBeam.clicked.connect(self.call_3DBeam) + self.ui.chkBxCol.clicked.connect(self.call_3DColumn) + self.ui.chkBxFinplate.clicked.connect(self.call_3DFinplate) + + validator = QtGui.QIntValidator() + self.ui.txtFu.setValidator(validator) + self.ui.txtFy.setValidator(validator) + + dbl_validator = QtGui.QDoubleValidator() + self.ui.txtPlateLen.setValidator(dbl_validator) + self.ui.txtPlateLen.setMaxLength(7) + self.ui.txtPlateWidth.setValidator(dbl_validator) + self.ui.txtPlateWidth.setMaxLength(7) + self.ui.txtShear.setValidator(dbl_validator) + self.ui.txtShear.setMaxLength(7) + + minfuVal = 290 + maxfuVal = 590 + self.ui.txtFu.editingFinished.connect(lambda: self.check_range(self.ui.txtFu,self.ui.lbl_fu, minfuVal, maxfuVal)) + + minfyVal = 165 + maxfyVal = 450 + self.ui.txtFy.editingFinished.connect(lambda: self.check_range(self.ui.txtFy,self.ui.lbl_fy, minfyVal, maxfyVal)) + + self.ui.combo_Beam.addItems(get_beamcombolist()) + self.ui.comboColSec.addItems(get_columncombolist()) + self.ui.menuView.addAction(self.ui.inputDock.toggleViewAction()) + self.ui.menuView.addAction(self.ui.outputDock.toggleViewAction()) + self.ui.btn_CreateDesign.clicked.connect(self.save_design) + #self.ui.btn_Saveoutput.clicked.connect(self.save_design) + self.ui.btn_SaveMessages.clicked.connect(self.save_log) + #self.ui.btn_Savelog.clicked.connect(self.save_log) + + + # Saving and Restoring the finPlate window state. + self.retrieve_prevstate() + + # Initialising the qtviewer + self.display,_ = self.init_display(backend_str="pyqt4") + + self.ui.btnSvgSave.clicked.connect(self.save3DtoIGES) + #self.ui.btnSvgSave.clicked.connect(lambda:self.saveTopng(self.display)) + + + def saveTopng(self,display): + display.ExportToImage('/home/Pictures/cad.png') + + def retrieve_prevstate(self): + uiObj = self.get_prevstate() + if(uiObj != None): + + self.ui.combo_Beam.setCurrentIndex(self.ui.combo_Beam.findText(uiObj['Member']['beamSection'])) + self.ui.comboColSec.setCurrentIndex(self.ui.comboColSec.findText(uiObj['Member']['columSection'])) + + self.ui.txtFu.setText(str(uiObj['Member']['fu(MPa)'])) + self.ui.txtFy.setText(str(uiObj['Member']['fy(MPa)'])) + + self.ui.comboConnLoc.setCurrentIndex(self.ui.comboConnLoc.findText(str(uiObj['Member']['connectivity']))) + + self.ui.txtShear.setText(str(uiObj['Load']['shearForce(kN)'])) + + self.ui.comboDaimeter.setCurrentIndex(self.ui.comboDaimeter.findText(str(uiObj['Bolt']['diameter(mm)']))) + comboTypeIndex = self.ui.comboType.findText(str(uiObj['Bolt']['type'])) + self.ui.comboType.setCurrentIndex(comboTypeIndex) + self.combotype_currentindexchanged(str(uiObj['Bolt']['type'])) + + prevValue = str(uiObj['Bolt']['grade']) + + comboGradeIndex = self.ui.comboGrade.findText(prevValue) + + self.ui.comboGrade.setCurrentIndex(comboGradeIndex) + + #self.ui.comboDaimeter.currentText(str(uiObj['Bolt']['diameter(mm)'])) + #self.ui.comboType.currentText(str(uiObj['Bolt']['diameter(mm)'])) + #self.ui.comboGrade.currentText(str(uiObj['Bolt']['grade'])) + + self.ui.comboPlateThick_2.setCurrentIndex(self.ui.comboPlateThick_2.findText(str(uiObj['Plate']['thickness(mm)']))) + #self.ui.comboPlateThick_2.currentText(str(uiObj['Plate']['thickness(mm)'])) + self.ui.txtPlateLen.setText(str(uiObj['Plate']['length(mm)'])) + self.ui.txtPlateWidth.setText(str(uiObj['Plate']['width(mm)'])) + + self.ui.comboWldSize.setCurrentIndex(self.ui.comboWldSize.findText(str(uiObj['Weld']['size(mm)']))) + #self.ui.comboWldSize.currentText(str(uiObj['Weld']['size(mm)'])) + #else: + # self.btnreset_clicked() + + def setimage_connection(self): + ''' + Setting image to connctivity. + ''' + self.ui.lbl_connectivity.show() + loc = self.ui.comboConnLoc.currentText() + if loc == "Column flange-Beam web": + + pixmap = QtGui.QPixmap(":/newPrefix/images/beam2.jpg") + pixmap.scaledToHeight(50) + pixmap.scaledToWidth(60) + self.ui.lbl_connectivity.setPixmap(pixmap) + #self.ui.lbl_connectivity.show() + elif(loc == "Column web-Beam web"): + picmap = QtGui.QPixmap(":/newPrefix/images/beam.jpg") + picmap.scaledToHeight(50) + picmap.scaledToWidth(60) + self.ui.lbl_connectivity.setPixmap(picmap) + else: + self.ui.lbl_connectivity.hide() + + + def getuser_inputs(self): + '''(nothing) -> Dictionary + + Returns the dictionary object with the user input fields for designing fin plate connection + + ''' + uiObj = {} + uiObj["Bolt"] = {} + uiObj["Bolt"]["diameter(mm)"] = self.ui.comboDaimeter.currentText().toInt()[0] + uiObj["Bolt"]["grade"] = float(self.ui.comboGrade.currentText()) + uiObj["Bolt"]["type"] = str(self.ui.comboType.currentText()) + + + uiObj["Weld"] = {} + uiObj["Weld"]['size(mm)'] = self.ui.comboWldSize.currentText().toInt()[0] + + uiObj['Member'] = {} + uiObj['Member']['beamSection'] = str(self.ui.combo_Beam.currentText()) + uiObj['Member']['columSection'] = str(self.ui.comboColSec.currentText()) + uiObj['Member']['connectivity'] = str(self.ui.comboConnLoc.currentText()) + uiObj['Member']['fu(MPa)'] = self.ui.txtFu.text().toInt()[0] + uiObj['Member']['fy(MPa)'] = self.ui.txtFy.text().toInt()[0] + + uiObj['Plate'] = {} + uiObj['Plate']['thickness(mm)'] = self.ui.comboPlateThick_2.currentText().toInt()[0] + uiObj['Plate']['height(mm)'] = self.ui.txtPlateLen.text().toInt()[0] # changes the label length to height + uiObj['Plate']['width(mm)'] = self.ui.txtPlateWidth.text().toInt()[0] + + uiObj['Load'] = {} + uiObj['Load']['shearForce(kN)'] = self.ui.txtShear.text().toInt()[0] + + + return uiObj + + def save_inputs(self,uiObj): + + '''(Dictionary)--> None + + ''' + inputFile = QtCore.QFile('saveINPUT.txt') + if not inputFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): + QtGui.QMessageBox.warning(self, "Application", + "Cannot write file %s:\n%s." % (inputFile, file.errorString())) + #yaml.dump(uiObj, inputFile,allow_unicode=True, default_flow_style = False) + pickle.dump(uiObj, inputFile) + + + def get_prevstate(self): + ''' + ''' + fileName = 'saveINPUT.txt' + + if os.path.isfile(fileName): + fileObject = open(fileName,'r') + uiObj = pickle.load(fileObject) + return uiObj + else: + return None + + + def outputdict(self): + + ''' Returns the output of design in dictionary object. + ''' + outObj = {} + outObj['Plate'] ={} + #outObj['Plate']["Thickness(mm)"] = float(self.ui.txtPlateThick.text()) + outObj['Plate']["External Moment(kNm)"] = float(self.ui.txtExtMomnt.text()) + outObj['Plate']["Moment Capacity(kNm)"] = float(self.ui.txtMomntCapacity.text()) + + outObj['Weld'] ={} + #outObj['Weld']["Weld Thickness(mm)"] = float(self.ui.txtWeldThick.text()) + outObj['Weld']["Resultant Shear(kN/mm)"] = float(self.ui.txtResltShr.text()) + outObj['Weld']["Weld Strength(kN/mm)"] = float(self.ui.txtWeldStrng.text()) + + outObj['Bolt'] = {} + outObj['Bolt']["Shear Capacity(kN)"] = float(self.ui.txtShrCapacity.text()) + outObj['Bolt']["Bearing Capacity(kN)"] = float(self.ui.txtbearCapacity.text()) + outObj['Bolt']["Capacity Of Bolt(kN)"] = float(self.ui.txtBoltCapacity.text()) + outObj['Bolt']["No Of Bolts"] = float(self.ui.txtNoBolts.text()) + outObj['Bolt']["No.Of Row"] = int(self.ui.txt_row.text()) + outObj['Bolt']["No.Of Column"] = int(self.ui.txt_col.text()) + outObj['Bolt']["Pitch Distance(mm)"] = float(self.ui.txtPitch.text()) + outObj['Bolt']["Guage Distance(mm)"] = float(self.ui.txtGuage.text()) + outObj['Bolt']["End Distance(mm)"]= float(self.ui.txtEndDist.text()) + outObj['Bolt']["Edge Distance(mm)"]= float(self.ui.txtEdgeDist.text()) + + return outObj + + + def save_design(self): + self.outdict = self.outputdict() + self.inputdict = self.getuser_inputs() + self.save_yaml(self.outdict,self.inputdict) + + #self.save(self.outdict,self.inputdict) + + def save_log(self): + + fileName,pat =QtGui.QFileDialog.getSaveFileNameAndFilter(self,"Save File As","/home/deepa/SaveMessages","Text files (*.txt)") + return self.save_file(fileName+".txt") + + def save_file(self, fileName): + '''(file open for writing)-> boolean + ''' + fname = QtCore.QFile(fileName) + if not fname.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): + QtGui.QMessageBox.warning(self, "Application", + "Cannot write file %s:\n%s." % (fileName, fname.errorString())) + return False + + outf = QtCore.QTextStream(fname) + QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) + outf << self.ui.textEdit.toPlainText() + QtGui.QApplication.restoreOverrideCursor() + + #self.setCurrentFile(fileName); + QtGui.QMessageBox.about(self,'Information',"File saved") + return True + + + def save_yaml(self,outObj,uiObj): + '''(dictiionary,dictionary) -> NoneType + Saving input and output to file in following format. + Bolt: + diameter: 6 + grade: 8.800000190734863 + type: HSFG + Load: + shearForce: 100 + + ''' + newDict = {"INPUT": uiObj, "OUTPUT": outObj} + fileName = QtGui.QFileDialog.getSaveFileName(self,"Save File As","/home/deepa/SaveDesign","Text File (*.txt)") + f = open(fileName,'w') + yaml.dump(newDict,f,allow_unicode=True, default_flow_style=False) + return self.save_file(fileName+".txt") + + + def resetbtn_clicked(self): + '''(NoneType) -> NoneType + + Resets all fields in input as well as output window + + ''' + # user Inputs + self.ui.combo_Beam.setCurrentIndex((0)) + self.ui.comboColSec.setCurrentIndex((0)) + self.ui.comboConnLoc.setCurrentIndex((0)) + self.ui.txtFu.clear() + self.ui.txtFy.clear() + + self.ui.txtShear.clear() + + self.ui.comboDaimeter.setCurrentIndex(0) + self.ui.comboType.setCurrentIndex((0)) + self.ui.comboGrade.setCurrentIndex((0)) + + self.ui.comboPlateThick_2.setCurrentIndex((0)) + self.ui.txtPlateLen.clear() + self.ui.txtPlateWidth.clear() + + self.ui.comboWldSize.setCurrentIndex((0)) + + #----Output + self.ui.txtShrCapacity.clear() + self.ui.txtbearCapacity.clear() + self.ui.txtBoltCapacity.clear() + self.ui.txtNoBolts.clear() + self.ui.txtboltgrpcapacity.clear() + self.ui.txt_row.clear() + self.ui.txt_col.clear() + self.ui.txtPitch.clear() + self.ui.txtGuage.clear() + self.ui.txtEndDist.clear() + self.ui.txtEdgeDist.clear() + + #self.ui.txtPlateThick.clear() + self.ui.txtplate_ht.clear() + self.ui.txtplate_width.clear() + self.ui.txtExtMomnt.clear() + self.ui.txtMomntCapacity.clear() + + #self.ui.txtWeldThick.clear() + self.ui.txtResltShr.clear() + self.ui.txtWeldStrng.clear() + self.ui.textEdit.clear() + + def dockbtn_clicked(self,widget): + + '''(QWidget) -> NoneType + + This method dock and undock widget(QdockWidget) + ''' + + flag = widget.isHidden() + if(flag): + + widget.show() + else: + widget.hide() + + def combotype_currentindexchanged(self,index): + + '''(Number) -> NoneType + ''' + items = self.gradeType[str(index)] + + self.ui.comboGrade.clear() + strItems = [] + for val in items: + strItems.append(str(val)) + + self.ui.comboGrade.addItems(strItems) + + + def check_range(self, widget,lblwidget, minVal, maxVal): + + '''(QlineEdit,QLable,Number,Number)---> NoneType + Validating F_u(ultimate Strength) and F_y (Yeild Strength) textfields + ''' + textStr = widget.text() + val = int(textStr) + if( val < minVal or val > maxVal): + QtGui.QMessageBox.about(self,'Error','Please Enter a value between %s-%s' %(minVal, maxVal)) + widget.clear() + widget.setFocus() + palette = QtGui.QPalette() + palette.setColor(QtGui.QPalette.Foreground,QtCore.Qt.red) + lblwidget.setPalette(palette) + else: + palette = QtGui.QPalette() + lblwidget.setPalette(palette) + + def display_output(self, resultObj): + + '''(dictionary) --> NoneType + + Setting design result values to the respective textboxes in the output window + + ''' + # resultObj['Bolt'] + shear_capacity = resultObj['Bolt']['shearcapacity'] + self.ui.txtShrCapacity.setText(str(shear_capacity)) + + bearing_capacity = resultObj['Bolt']['bearingcapacity'] + self.ui.txtbearCapacity.setText(str(bearing_capacity)) + + bolt_capacity = resultObj['Bolt']['boltcapacity'] + self.ui.txtBoltCapacity.setText(str(bolt_capacity)) + + no_ofbolts = resultObj['Bolt']['numofbolts'] + self.ui.txtNoBolts.setText(str(no_ofbolts)) + #newly added field + boltGrp_capacity = resultObj['Bolt']['boltgrpcapacity'] + self.ui.txtboltgrpcapacity.setText(str(boltGrp_capacity)) + + no_ofrows = resultObj['Bolt']['numofrow'] + self.ui.txt_row.setText(str(no_ofrows)) + + no_ofcol = resultObj['Bolt']['numofcol'] + self.ui.txt_col.setText(str(no_ofcol)) + + pitch_dist = resultObj['Bolt']['pitch'] + self.ui.txtPitch.setText(str(pitch_dist)) + + gauge_dist = resultObj['Bolt']['gauge'] + self.ui.txtGuage.setText(str(gauge_dist)) + + end_dist = resultObj['Bolt']['enddist'] + self.ui.txtEndDist.setText(str(end_dist)) + + edge_dist = resultObj['Bolt']['edge'] + self.ui.txtEdgeDist.setText(str(edge_dist)) + + # resultObj['Weld'] + # weld_thickness = resultObj['Weld']['thickness'] + # self.ui.txtWeldThick.setText(str(weld_thickness)) + + resultant_shear = resultObj['Weld']['resultantshear'] + self.ui.txtResltShr.setText(str(resultant_shear)) + + weld_strength = resultObj['Weld']['weldstrength'] + self.ui.txtWeldStrng.setText(str(weld_strength)) + + + # Newly included fields + plate_ht = resultObj['Plate']['height'] + self.ui.txtplate_ht.setText(str(plate_ht)) + + plate_width = resultObj['Plate']['width'] + self.ui.txtplate_width.setText(str(plate_width)) + + moment_demand = resultObj['Plate']['externalmoment'] + self.ui.txtExtMomnt.setText(str(moment_demand)) + + moment_capacity = resultObj['Plate']['momentcapacity'] + self.ui.txtMomntCapacity.setText(str(moment_capacity)) + + + def displaylog_totextedit(self): + ''' + This method displaying Design messages(log messages)to textedit widget. + ''' + + afile = QtCore.QFile('fin.log') + + if not afile.open(QtCore.QIODevice.ReadOnly): + QtGui.QMessageBox.information(None, 'info', afile.errorString()) + + stream = QtCore.QTextStream(afile) + self.ui.textEdit.setHtml(stream.readAll()) + + def get_backend(self): + """ + loads a backend + backends are loaded in order of preference + since python comes with Tk included, but that PySide or PyQt4 + is much preferred + """ + try: + from PySide import QtCore, QtGui + return 'pyside' + except: + pass + try: + from PyQt4 import QtCore, QtGui + return 'pyqt4' + except: + pass + # Check wxPython + try: + import wx + return 'wx' + except: + raise ImportError("No compliant GUI library found. You must have either PySide, PyQt4 or wxPython installed.") + sys.exit(1) + + # QtViewer + def init_display(self,backend_str=None, size=(1024, 768)): + + global display, start_display, app, _, USED_BACKEND + + if not backend_str: + USED_BACKEND = self.get_backend() + elif backend_str in [ 'pyside', 'pyqt4']: + USED_BACKEND = backend_str + else: + raise ValueError("You should pass either 'qt' or 'tkinter' to the init_display function.") + sys.exit(1) + + # Qt based simple GUI + if USED_BACKEND in ['pyqt4', 'pyside']: + if USED_BACKEND == 'pyqt4': + from PyQt4 import QtCore, QtGui, QtOpenGL + from OCC.Display.pyqt4Display import qtViewer3d + elif USED_BACKEND == 'pyside': + from PySide import QtCore, QtGui, QtOpenGL + from OCC.Display.pysideDisplay import qtViewer3d + + self.ui.modelTab = qtViewer3d(self) + #self.ui.model2dTab = qtViewer3d(self) + self.setWindowTitle("Osdag-%s 3d viewer ('%s' backend)" % (VERSION, USED_BACKEND)) + self.ui.mytabWidget.resize(size[0], size[1]) + self.ui.mytabWidget.addTab(self.ui.modelTab,"3D") + #self.ui.mytabWidget.addTab(self.ui.model2dTab, "2D") + + #self.ui.mytabWidget.setCentralWidget(self.ui.modelTab) + #self.ui.mytabWidget.centerOnScreen() + + self.ui.modelTab.InitDriver() + display = self.ui.modelTab._display + #display_2d = self.ui.model2dTab._display + + # background gradient + display.set_bg_gradient_color(23,1,32,23,1,32) + #display_2d.set_bg_gradient_color(255,255,255,255,255,255) + # display black trihedron + display.display_trihedron() + display.View.SetProj(1, 1, 1) + def centerOnScreen(self): + '''Centers the window on the screen.''' + resolution = QtGui.QDesktopWidget().screenGeometry() + self.move((resolution.width() / 2) - (self.frameSize().width() / 2), + (resolution.height() / 2) - (self.frameSize().height() / 2)) + def start_display(): + + self.ui.modelTab.raise_() # make the application float to the top + + return display, start_display + + def display3Dmodel(self,cadlist,component): + + if component == "Column": + self.display.EraseAll() + osdagDisplayShape(self.display, cadlist[0], update=True) + elif component == "Beam": + display.EraseAll() + osdagDisplayShape(self.display, cadlist[1],material = Graphic3d_NOT_2D_ALUMINUM, update=True) + elif component == "Finplate" : + display.EraseAll() + osdagDisplayShape(self.display,cadlist[2],color = 'red', update = True) + osdagDisplayShape(self.display, cadlist[3], color = 'blue', update = True) + self.display.DisplayShape(cadlist[4],color = Quantity_NOC_SADDLEBROWN, update=True) + self.display.DisplayShape(cadlist[5],color = Quantity_NOC_SADDLEBROWN, update = True) + elif component == "Model": + osdagDisplayShape(self.display, cadlist[0], update=True) + osdagDisplayShape(self.display, cadlist[1],material = Graphic3d_NOT_2D_ALUMINUM, update=True) + osdagDisplayShape(self.display,cadlist[2],color = 'red', update = True) + osdagDisplayShape(self.display,cadlist[3],color = 'red', update = True) + osdagDisplayShape(self.display, cadlist[4], color = 'blue', update = True) + self.display.DisplayShape(cadlist[5],color = Quantity_NOC_SADDLEBROWN, update=True) + self.display.DisplayShape(cadlist[6],color = Quantity_NOC_SADDLEBROWN, update = True) + else: + pass + + start_display() + + + def create3DColWebBeamWeb(self): + ''' + creating 3d cad model with column web beam web + ''' + + column = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) + beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500) + Fweld1 = FilletWeld(L= 300,b = 6, h = 6) + #Fweld1 = Weld(L= 300,W = beam.t, T = 8) + + plate = Plate(L= 300,W =100, T = 10) + boltRadius = 10 + nutRadius = 10 + + colwebconn = ColWebBeamWeb(column,beam,Fweld1,plate,boltRadius,nutRadius) + return colwebconn.create_3dmodel() + + def createColFlangeBeamWeb(self): + ''' + Creating 3d cad model with column flange beam web connection + ''' + column = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) + beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500) + weld = Weld(L= 300,b = 6.0, T = 8) + plate = Plate(L= weld.L,W =100, T = 10) + boltRadius = 10 + nutRadius = 10 + + colflangeconn = ColFlangeBeamWeb(column,beam,weld,plate,boltRadius,nutRadius) + return colflangeconn.create_3dmodel() + + def call_3DModel(self): + if self.ui.btn3D.isEnabled(): + self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + + if self.ui.comboConnLoc.currentText()== "Column web-Beam web": + memberlist = self.create3DColWebBeamWeb() + else: + self.ui.mytabWidget.setCurrentIndex(0) + memberlist = self.createColFlangeBeamWeb() + + #memberlist = self.create_3dmodel() + #self.ui.btn3D.setStyleSheet("background-color: red") + self.display3Dmodel(memberlist, "Model") + + + def call_3DBeam(self): + ''' + Creating and displaying 3D Beam + ''' + memberlist = self.create3DColWebBeamWeb() + + if self.ui.chkBxBeam.isChecked(): + self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + self.display3Dmodel(memberlist, "Beam") + #self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + + def call_3DColumn(self): + memberlist = self.create3DColWebBeamWeb() + if self.ui.chkBxCol.isChecked(): + self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + self.display3Dmodel(memberlist, "Column") + #self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked + + def call_3DFinplate(self): + memberlist = self.create3DColWebBeamWeb() + if self.ui.chkBxFinplate.isChecked(): + self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + self.display3Dmodel(memberlist, "Finplate") + #self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked + + def design_btnclicked(self): + + # Getting User Inputs. + uiObj = self.getuser_inputs() + print uiObj + + # FinPlate Design Calculations. + resultObj = finConn(uiObj) + + # Displaying Design Calculations To Output Window + self.display_output(resultObj) + + # Displaying Messages related to FinPlate Design. + self.ui.textEdit.clear() + self.displaylog_totextedit() + + + def close_event(self, event): + ''' + Closing finPlate window. + ''' + uiInput = self.getuser_inputs() + self.save_inputs(uiInput) + reply = QtGui.QMessageBox.question(self, 'Message', + "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) + + if reply == QtGui.QMessageBox.Yes: + event.accept() + else: + event.ignore() + + + def create2Dcad(self): + + + # ISection COLUMN + origin1 = numpy.array([0, 0, 0]) + uDir1 = numpy.array([1.0, 0, 0]) + wDir1 = numpy.array([0.0, 0, 1.0]) + t = 8.9 + weldThick = 8 + iSection1 = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) + iSection1.place(origin1, uDir1, wDir1) + + # ISection BEAM + uDir2 = numpy.array([0, 1.0, 0]) + wDir2 = numpy.array([1.0, 0, 0.0]) + d = t/2.0 + weldThick + origin2 = numpy.array([0, 0, 500]) + (d+7.55) * wDir2 + iSection2 = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 400) + iSection2.place(origin2, uDir2, wDir2) + + # WELD + weld = Weld(L= 300,W =iSection2.t, T = 8) + #plateThickness = 10 + uDir3 = numpy.array([0, 1.0, 0]) + wDir3 = numpy.array([1.0, 0, 0.0]) + origin3 = (iSection1.secOrigin + + iSection1.t/2.0 * iSection1.uDir + + iSection1.length/2.0 * iSection1.wDir + + iSection2.t/2.0 * (-iSection2.uDir)+ + weld.W/2.0 * (-iSection2.uDir)) + #origin3 = numpy.array([0, 0, 500]) + t/2.0 *wDir3 + plateThickness/2.0 * (-iSection2.uDir) + weld.place(origin3, uDir3, wDir3) + + # PLATE + plate = Plate(L= weld.L,W =100, T = 10) + uDir4 = numpy.array([0, 1.0, 0]) + wDir4 = numpy.array([1.0, 0, 0.0]) + origin4 = weld.secOrigin + weld.T * weld.wDir + plate.place(origin4, uDir4, wDir4) + + # BOLT BODY + bolt_T = 6.0 + origin51 = (plate.secOrigin + (- + plate.T/2.0 - bolt_T) * plate.uDir + + plate.W/2.0 * plate.wDir) + + uDir5 = plate.wDir + wDir5 = plate.uDir + ## Bolt1 + bolt1 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) + bolt1.place(origin51, uDir5, wDir5) + + ## Bolt2 + bolt2 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) + origin52 = origin51 + 50 *plate.vDir + bolt2.place(origin52, uDir5, wDir5) + + ## Bolt3 + bolt3 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) + origin53 = origin51 - 50*plate.vDir + bolt3.place(origin53, uDir5, wDir5) + bolt_list =[bolt1,bolt2,bolt3] + + # NUTBODY + ## Nut1 + nut1 = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + uDir = uDir5 + wDir = wDir5 + nut_Origin1 = origin51 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) + nut1.place(nut_Origin1, uDir, wDir) + + ## Nut2 + nut2 = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + nut_Origin2 = origin52 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) + nut2.place(nut_Origin2, uDir, wDir) + + ## Nut3 + nut3 =Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + nut_Origin3 = origin53 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) + nut3.place(nut_Origin3, uDir5, wDir5) + nut_list = [nut1,nut2,nut3] + + # Call for createModel + iSectionModel1 = iSection1.createModel() + iSectionModel2 = iSection2.createModel() + weldModel = weld.createModel() + plateModel = plate.createModel() + boltModels = [] + for bolt in bolt_list: + + boltModels.append(bolt.createModel()) + + #color = Quantity_NOC_SADDLEBROWN, + nutModels = [] + for nut in nut_list: + nutModels.append(nut.createModel()) + + isection = BRepAlgoAPI_Fuse(iSectionModel1,iSectionModel2).Shape() + weld_isection = BRepAlgoAPI_Fuse(isection,weldModel).Shape() + plate_weld = BRepAlgoAPI_Fuse(weld_isection,plateModel).Shape() + + plate_weld_bolt = plate_weld + for bolt in boltModels: + plate_weld_bolt = BRepAlgoAPI_Fuse(plate_weld_bolt, bolt).Shape() + + + final_model = plate_weld_bolt + for nt in nutModels: + final_model = BRepAlgoAPI_Fuse(final_model,nt).Shape() + return final_model + + # Export to IGES + def save3DtoIGES(self): + shape = self.create2Dcad() + i = IGESControl.IGESControl_Controller() + i.Init() + iges_writer = IGESControl.IGESControl_Writer() + iges_writer.AddShape(shape) + iges_writer.Write('/home/deepa/Pictures/osdag.iges') + + def display2DModel(self, final_model, viewName): + + #display, start_display, _, _ = self.simpleGUI() + + self.display.set_bg_gradient_color(255, 255, 255, 255, 255, 255) + # Get Context + ais_context = self.display.GetContext().GetObject() + + # Get Prs3d_drawer from previous context + drawer_handle = ais_context.DefaultDrawer() + drawer = drawer_handle.GetObject() + drawer.EnableDrawHiddenLine() + + hla = drawer.HiddenLineAspect().GetObject() + hla.SetWidth(2) + hla.SetColor(Quantity_NOC_RED) + + # increase line width in the current viewer + # This is only viewed in the HLR mode (hit 'e' key for instance) + + line_aspect = drawer.SeenLineAspect().GetObject() + line_aspect.SetWidth(2.8) + line_aspect.SetColor(Quantity_NOC_BLUE1) + + self.display.DisplayShape(final_model, update = True) + + self.display.SetModeHLR() + self.display.FitAll() + + if (viewName == "Front"): + display.View_Front() + elif (viewName == "Top"): + display.View_Top() + elif (viewName == "Right"): + display.View_Right() + else: + pass + + start_display() + + def call_Frontview(self): + + '''Displays front view of 2Dmodel + ''' + self.ui.mytabWidget.setCurrentIndex(1) + final_model = self.create2Dcad() + self.display2DModel(final_model, "Front") + + def call_Topview(self): + + '''Displays Top view of 2Dmodel + ''' + final_model = self.create2Dcad() + self.display2DModel(final_model, "Top") + + def call_Sideview(self): + + '''Displays Side view of the 2Dmodel' + ''' + final_model = self.create2Dcad() + self.display2DModel(final_model, "Right") + +def set_osdaglogger(): + + logger = logging.getLogger("osdag") + logger.setLevel(logging.DEBUG) + + # create the logging file handler + fh = logging.FileHandler("fin.log", mode="a") + + #,datefmt='%a, %d %b %Y %H:%M:%S' + #formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + + formatter = logging.Formatter(''' + <div class="LOG %(levelname)s"> + <span class="DATE">%(asctime)s</span> + <span class="LEVEL">%(levelname)s</span> + <span class="MSG">%(message)s</span> + </div>''') + formatter.datefmt = '%a, %d %b %Y %H:%M:%S' + fh.setFormatter(formatter) + + # add handler to logger object + logger.addHandler(fh) + + +if __name__ == '__main__': + + # linking css to log file to display colour logs. + set_osdaglogger() + rawLogger = logging.getLogger("raw") + rawLogger.setLevel(logging.INFO) + fh = logging.FileHandler("fin.log", mode="w") + formatter = logging.Formatter('''%(message)s''') + fh.setFormatter(formatter) + rawLogger.addHandler(fh) + rawLogger.info('''<link rel="stylesheet" type="text/css" href="log.css"/>''') + + + + app = QtGui.QApplication(sys.argv) + window = MainController() + window.show() + sys.exit(app.exec_()) + + + + + diff --git a/Connections/Shear/Finplate/ISection.py b/Connections/Shear/Finplate/ISection.py new file mode 100644 index 0000000..47ed464 --- /dev/null +++ b/Connections/Shear/Finplate/ISection.py @@ -0,0 +1,91 @@ +''' +Created on 29-Nov-2014 + +@author: deepa +''' +import numpy +from ModelUtils import * + + +class ISection(object): + ''' + ^ v + | + c2 . c1 + --- +-----------------|-----------------+ --- + ^ | . | ^ + | T | | | | + v | . | | + --- +------------+ | +------------+ | + b2 a2| | a1 b1 | + | t | | + |<------->| | + | | | | + | . | |D + | |O | | + -- -- -- -- -- -- -- -- --.-- -- -- -- -- -- -- -- |-- -- -> u + | | | | + | . | | + | | | | + | . | | + b3 a3| | |a4 b4 | + +-----------+ . +------------+ | + | | | | + | . | | + | | | v + +----------------.-----------------+ --- + c3 B c4 + |<-------------------------------->| + + ''' + def __init__(self, B, T, D, t, R1, R2, alpha, length): + self.B = B + self.T = T + self.D = D + self.t = t + self.R1 = R1 + self.R2 = R2 + self.alpha = alpha + self.length = length + self.secOrigin = numpy.array([0, 0, 0]) + self.uDir = numpy.array([1.0, 0, 0]) + self.wDir = numpy.array([0.0, 0, 1.0]) + self.computeParams() + + def place(self, secOrigin, uDir, wDir): + self.secOrigin = secOrigin + self.uDir = uDir + self.wDir = wDir + self.computeParams() + + def computeParams(self): + self.vDir = numpy.cross(self.wDir, self.uDir) + self.a1 = self.secOrigin + (self.t/2.0) * self.uDir + ((self.D/2.0) - self.T) * self.vDir + self.b1 = self.secOrigin + (self.B/2.0) * self.uDir + ((self.D/2.0) - self.T) * self.vDir + self.c1 = self.secOrigin + (self.B/2.0) * self.uDir + (self.D/2.0) * self.vDir + self.a2 = self.secOrigin + (-self.t/2.0) * self.uDir + ((self.D/2.0) - self.T) * self.vDir + self.b2 = self.secOrigin + (-self.B/2.0) * self.uDir + ((self.D/2.0) - self.T) * self.vDir + self.c2 = self.secOrigin + (-self.B/2.0) * self.uDir + (self.D/2.0) * self.vDir + self.a3 = self.secOrigin + (-self.t/2.0) * self.uDir + -((self.D/2.0) - self.T) * self.vDir + self.b3 = self.secOrigin + (-self.B/2.0) * self.uDir + -((self.D/2.0) - self.T) * self.vDir + self.c3 = self.secOrigin + (-self.B/2.0) * self.uDir + -(self.D/2.0) * self.vDir + self.a4 = self.secOrigin + (self.t/2.0) * self.uDir + -((self.D/2.0) - self.T) * self.vDir + self.b4 = self.secOrigin + (self.B/2.0) * self.uDir + -((self.D/2.0) - self.T) * self.vDir + self.c4 = self.secOrigin + (self.B/2.0) * self.uDir + -(self.D/2.0) * self.vDir + self.points = [self.a1, self.b1, self.c1, + self.c2, self.b2, self.a2, + self.a3, self.b3, self.c3, + self.c4, self.b4, self.a4] + #self.points = [[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]] + + def createModel(self): + edges = makeEdgesFromPoints(self.points) + wire = makeWireFromEdges(edges) + aFace = makeFaceFromWire(wire) + extrudeDir = self.length * self.wDir # extrudeDir is a numpy array + prism = makePrismFromFace(aFace, extrudeDir) + + return prism + + +
\ No newline at end of file diff --git a/Connections/Shear/Finplate/ModelUtils.py b/Connections/Shear/Finplate/ModelUtils.py new file mode 100644 index 0000000..ae4e175 --- /dev/null +++ b/Connections/Shear/Finplate/ModelUtils.py @@ -0,0 +1,94 @@ +''' +Created on 29-Nov-2014 + +@author: deepa +''' +from OCC.Display.SimpleGui import init_display +from OCC.BRepPrimAPI import BRepPrimAPI_MakeBox, BRepPrimAPI_MakeSphere,\ + BRepPrimAPI_MakePrism +from OCC.gp import gp_Pnt, gp_Dir, gp_Pln, gp_Vec +from OCC.BRepBuilderAPI import BRepBuilderAPI_MakeFace +from OCC.BRepBuilderAPI import (BRepBuilderAPI_MakeEdge, + BRepBuilderAPI_MakeVertex, + BRepBuilderAPI_MakeWire) +from OCC.BRepFill import BRepFill_Filling +from OCC.GeomAbs import GeomAbs_C0 +from OCC.GeomAPI import GeomAPI_PointsToBSpline +from OCC.TColgp import TColgp_Array1OfPnt +from OCC._Quantity import Quantity_NOC_BLACK + + +def make_edge(*args): + edge = BRepBuilderAPI_MakeEdge(*args) + result = edge.Edge() + return result + + +def make_vertex(*args): + vert = BRepBuilderAPI_MakeVertex(*args) + result = vert.Vertex() + return result + + +def make_n_sided(edges, continuity=GeomAbs_C0): + n_sided = BRepFill_Filling() # TODO Checck optional NbIter=6) + for edg in edges: + n_sided.Add(edg, continuity) + n_sided.Build() + face = n_sided.Face() + return face + + +def make_wire(*args): + # if we get an iterable, than add all edges to wire builder + if isinstance(args[0], list) or isinstance(args[0], tuple): + wire = BRepBuilderAPI_MakeWire() + for i in args[0]: + wire.Add(i) + wire.Build() + return wire.Wire() + wire = BRepBuilderAPI_MakeWire(*args) + return wire.Wire() + + +def points_to_bspline(pnts): + pts = TColgp_Array1OfPnt(0, len(pnts)-1) + for n, i in enumerate(pnts): + pts.SetValue(n, i) + crv = GeomAPI_PointsToBSpline(pts) + return crv.Curve() + +def makeWireFromEdges(edges): + wire = None + for edge in edges: + if wire : + wire = make_wire(wire, edge) + else: + wire = make_wire(edge) + return wire + +def makeFaceFromWire(wire): + return BRepBuilderAPI_MakeFace(wire).Face() + +def getGpPt(point): + return gp_Pnt(point[0], point[1], point[2]) + +def getGpDir(direction): + return gp_Dir(direction[0], direction[1], direction[2]) + +def makeEdgesFromPoints(points): + edges = [] + num = len(points) + for i in range(num - 1): + edge = make_edge(getGpPt(points[i]), getGpPt(points[i + 1])) + edges.append(edge) + + cycleEdge = make_edge(getGpPt(points[num - 1]), getGpPt(points[0])) + edges.append(cycleEdge) + + return edges + +def makePrismFromFace(aFace, eDir): + return BRepPrimAPI_MakePrism(aFace, gp_Vec(gp_Pnt(0., 0., 0.),gp_Pnt(eDir[0], eDir[1], eDir[2]))).Shape() + #return BRepPrimAPI_MakePrism(aFace, gpDir, False).Shape() + diff --git a/Connections/Shear/Finplate/ResourceFiles/icons.qrc b/Connections/Shear/Finplate/ResourceFiles/icons.qrc new file mode 100644 index 0000000..a68ffef --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/icons.qrc @@ -0,0 +1,17 @@ +<RCC> + <qresource prefix="newPrefix"> + <file>images/download1.png</file> + <file>images/beam2.jpg</file> + <file>images/favicon.png</file> + <file>images/rotate-ccw.png</file> + <file>images/rotate-cw.png</file> + <file>images/beam2.jpg</file> + <file>images/save.png</file> + <file>images/output.png</file> + <file>images/input.png</file> + <file>images/zoom_in_01.png</file> + <file>images/zoom_out_01.png</file> + <file>images/logo.jpg</file> + <file>images/beam.jpg</file> + </qresource> +</RCC> diff --git a/Connections/Shear/Finplate/ResourceFiles/images/Conn1.jpg b/Connections/Shear/Finplate/ResourceFiles/images/Conn1.jpg Binary files differnew file mode 100644 index 0000000..c01ed8e --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/Conn1.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/IbeamStype.gif b/Connections/Shear/Finplate/ResourceFiles/images/IbeamStype.gif Binary files differnew file mode 100644 index 0000000..161f4de --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/IbeamStype.gif diff --git a/Connections/Shear/Finplate/ResourceFiles/images/beam.jpg b/Connections/Shear/Finplate/ResourceFiles/images/beam.jpg Binary files differnew file mode 100644 index 0000000..302069e --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/beam.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/beam2.jpg b/Connections/Shear/Finplate/ResourceFiles/images/beam2.jpg Binary files differnew file mode 100644 index 0000000..04765a4 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/beam2.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/compre1.jpg b/Connections/Shear/Finplate/ResourceFiles/images/compre1.jpg Binary files differnew file mode 100644 index 0000000..97bbbf6 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/compre1.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/config.jpg b/Connections/Shear/Finplate/ResourceFiles/images/config.jpg Binary files differnew file mode 100644 index 0000000..d1e33ff --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/config.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/conn2.jpg b/Connections/Shear/Finplate/ResourceFiles/images/conn2.jpg Binary files differnew file mode 100644 index 0000000..0afb771 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/conn2.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/download1.png b/Connections/Shear/Finplate/ResourceFiles/images/download1.png Binary files differnew file mode 100644 index 0000000..0e35c8a --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/download1.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/favicon.png b/Connections/Shear/Finplate/ResourceFiles/images/favicon.png Binary files differnew file mode 100644 index 0000000..5855c44 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/favicon.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/images.jpeg b/Connections/Shear/Finplate/ResourceFiles/images/images.jpeg Binary files differnew file mode 100644 index 0000000..a135ae9 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/images.jpeg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/images.jpg b/Connections/Shear/Finplate/ResourceFiles/images/images.jpg Binary files differnew file mode 100644 index 0000000..b1861cc --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/images.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/index.jpeg b/Connections/Shear/Finplate/ResourceFiles/images/index.jpeg Binary files differnew file mode 100644 index 0000000..1fb0eae --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/index.jpeg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/input.png b/Connections/Shear/Finplate/ResourceFiles/images/input.png Binary files differnew file mode 100644 index 0000000..d618c4d --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/input.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/inputlogo.png b/Connections/Shear/Finplate/ResourceFiles/images/inputlogo.png Binary files differnew file mode 100644 index 0000000..7933d9e --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/inputlogo.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/logo.jpg b/Connections/Shear/Finplate/ResourceFiles/images/logo.jpg Binary files differnew file mode 100644 index 0000000..db1e253 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/logo.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/logo2.jpg b/Connections/Shear/Finplate/ResourceFiles/images/logo2.jpg Binary files differnew file mode 100644 index 0000000..1b7c7e3 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/logo2.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/output.png b/Connections/Shear/Finplate/ResourceFiles/images/output.png Binary files differnew file mode 100644 index 0000000..a2f6542 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/output.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/querry.jpg b/Connections/Shear/Finplate/ResourceFiles/images/querry.jpg Binary files differnew file mode 100644 index 0000000..10b708a --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/querry.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/rotate-ccw.png b/Connections/Shear/Finplate/ResourceFiles/images/rotate-ccw.png Binary files differnew file mode 100644 index 0000000..382a5e1 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/rotate-ccw.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/rotate-cw.png b/Connections/Shear/Finplate/ResourceFiles/images/rotate-cw.png Binary files differnew file mode 100644 index 0000000..40e671e --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/rotate-cw.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/save.png b/Connections/Shear/Finplate/ResourceFiles/images/save.png Binary files differnew file mode 100644 index 0000000..b64d6e2 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/save.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/tension.jpg b/Connections/Shear/Finplate/ResourceFiles/images/tension.jpg Binary files differnew file mode 100644 index 0000000..717205b --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/tension.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/update.jpg b/Connections/Shear/Finplate/ResourceFiles/images/update.jpg Binary files differnew file mode 100644 index 0000000..c61bdda --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/update.jpg diff --git a/Connections/Shear/Finplate/ResourceFiles/images/zoom_in.png b/Connections/Shear/Finplate/ResourceFiles/images/zoom_in.png Binary files differnew file mode 100644 index 0000000..dc8f097 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/zoom_in.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/zoom_in_01.png b/Connections/Shear/Finplate/ResourceFiles/images/zoom_in_01.png Binary files differnew file mode 100644 index 0000000..6bd286b --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/zoom_in_01.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/zoom_out.png b/Connections/Shear/Finplate/ResourceFiles/images/zoom_out.png Binary files differnew file mode 100644 index 0000000..0d74649 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/zoom_out.png diff --git a/Connections/Shear/Finplate/ResourceFiles/images/zoom_out_01.png b/Connections/Shear/Finplate/ResourceFiles/images/zoom_out_01.png Binary files differnew file mode 100644 index 0000000..79c2b21 --- /dev/null +++ b/Connections/Shear/Finplate/ResourceFiles/images/zoom_out_01.png diff --git a/Connections/Shear/Finplate/bolt.py b/Connections/Shear/Finplate/bolt.py new file mode 100644 index 0000000..b3d654a --- /dev/null +++ b/Connections/Shear/Finplate/bolt.py @@ -0,0 +1,67 @@ +''' +Created on 29-Nov-2014 + +@author: deepa +''' +import numpy +from ModelUtils import * +import math +from OCC.BRepPrimAPI import BRepPrimAPI_MakeCylinder +from OCC.BRepAlgo import BRepAlgo_BooleanOperations +from OCC.gp import gp_Pnt, gp_Dir, gp_Pln, gp_Ax2 +from OCC.BRepAlgoAPI import BRepAlgoAPI_Fuse + + +class Bolt(object): + # + def __init__(self,R,T,H,r): + self.R = R + self.H = H + self.T = T + self.r = r + self.secOrigin = numpy.array([0, 0, 0]) + self.uDir = numpy.array([1.0, 0, 0]) + self.wDir = numpy.array([0.0, 0, 1.0]) + self.computeParams() + + def place(self, secOrigin, uDir, wDir): + self.secOrigin = secOrigin + self.uDir = uDir + self.wDir = wDir + self.computeParams() + + def getPoint(self,theta): + theta = math.radians(theta) + point = self.secOrigin + (self.R * math.cos(theta)) * self.uDir + (self.R * math.sin(theta)) * self.vDir + return point + + def computeParams(self): + + self.vDir = numpy.cross(self.wDir, self.uDir) + self.a1 = self.getPoint(0) + self.a2 = self.getPoint(60) + self.a3 = self.getPoint(120) + self.a4 = self.getPoint(180) + self.a5 = self.getPoint(240) + self.a6 = self.getPoint(300) + self.points = [self.a1, self.a2, self.a3, self.a4, self.a5, self.a6] + + + + def createModel(self): + + edges = makeEdgesFromPoints(self.points) + wire = makeWireFromEdges(edges) + aFace = makeFaceFromWire(wire) + extrudeDir = self.T * self.wDir # extrudeDir is a numpy array + boltHead = makePrismFromFace(aFace, extrudeDir) + cylOrigin = self.secOrigin + self.T * self.wDir + + boltCylinder = BRepPrimAPI_MakeCylinder(gp_Ax2(getGpPt(cylOrigin), getGpDir(self.wDir)), self.r, self.H).Shape() + whole_Bolt = BRepAlgoAPI_Fuse(boltHead,boltCylinder).Shape() + + return whole_Bolt + + + +
\ No newline at end of file diff --git a/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py b/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py new file mode 100644 index 0000000..d592e45 --- /dev/null +++ b/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py @@ -0,0 +1,131 @@ +''' +Created on 11-May-2015 + +@author: deepa +''' +''' +Created on 11-May-2015 + +@author: deepa +''' +from ISection import ISection +import numpy +from OCC.Graphic3d import Graphic3d_NOT_2D_ALUMINUM +from weld import Weld +from plate import Plate +from bolt import Bolt +from nut import Nut + + +class ColFlangeBeamWeb(object): + + def __init__(self,column,beam,weld,plate,boltRadius,nutRadius): + self.column = column + self.beam = beam + self.weld = weld + self.plate = plate + self.boltRadius = boltRadius + self.nutRadius = nutRadius + + + def create_3dmodel(self): + + # ISection COLUMN + origin1 = numpy.array([0, 0, 0]) + uDir1 = numpy.array([1.0, 0, 0]) + wDir1 = numpy.array([0.0, 0, 1.0]) + t = 8.9 + weldThick = 8 + + self.column.place(origin1, uDir1, wDir1) + + # ISection BEAM + uDir2 = numpy.array([0, 1.0, 0]) + wDir2 = numpy.array([1.0, 0, 0.0]) + d = t/2.0 + weldThick + origin2 = numpy.array([0, 0, 500]) + (d+7.55) * wDir2 + #self.beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500) + self.beam.place(origin2, uDir2, wDir2) + + # WELD + + plateThickness = 10 + uDir3 = numpy.array([0, 1.0, 0]) + wDir3 = numpy.array([1.0, 0, 0.0]) + origin3 = (self.column.secOrigin + + self.column.t/2.0 * self.column.uDir + + self.column.length/2.0 * self.column.wDir + + self.beam.t/2.0 * (-self.beam.uDir)+ + self.weld.W/2.0 * (-self.beam.uDir)) + #origin3 = numpy.array([0, 0, 500]) + t/2.0 *wDir3 + plateThickness/2.0 * (-self.beam.uDir) + self.weld.place(origin3, uDir3, wDir3) + + # PLATE + + uDir4 = numpy.array([0, 1.0, 0]) + wDir4 = numpy.array([1.0, 0, 0.0]) + origin4 = self.weld.secOrigin + self.weld.T * self.weld.wDir + self.plate.place(origin4, uDir4, wDir4) + + # BOLT BODY + bolt_T = 6.0 + origin51 = (self.plate.secOrigin + (- + self.plate.T/2.0 - bolt_T) * self.plate.uDir + + self.plate.W/2.0 * self.plate.wDir) + + uDir5 = self.plate.wDir + wDir5 = self.plate.uDir + + ## Bolt1 + bolt1 = Bolt(R = self.boltRadius,T = bolt_T, H = 30.0, r = 4.0 ) + bolt1.place(origin51, uDir5, wDir5) + + ## Bolt2 + bolt2 = Bolt(R = self.boltRadius, T = bolt_T, H = 30.0, r = 4.0 ) + origin52 = origin51 + 50 *self.plate.vDir + bolt2.place(origin52, uDir5, wDir5) + + ## Bolt3 + bolt3 = Bolt(R = self.boltRadius,T = bolt_T, H = 30.0, r = 4.0 ) + origin53 = origin51 - 50*self.plate.vDir + bolt3.place(origin53, uDir5, wDir5) + bolt_list =[bolt1,bolt2,bolt3] + + #nutbody = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + # NUTBODY + ## Nut1 + nut1 = Nut(R = self.nutRadius,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + uDir = uDir5 + wDir = wDir5 + nut_Origin1 = origin51 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir) + nut1.place(nut_Origin1, uDir, wDir) + + ## Nut2 + nut2 = Nut(R = self.nutRadius,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + nut_Origin2 = origin52 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir) + nut2.place(nut_Origin2, uDir, wDir) + + ## Nut3 + nut3 =Nut(R = self.nutRadius, T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + nut_Origin3 = origin53 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir) + nut3.place(nut_Origin3, uDir5, wDir5) + nut_list = [nut1,nut2,nut3] + + # Call for createModel + iSectionModel1 = self.column.createModel() + iSectionModel2 = self.beam.createModel() + weldModel = self.weld.createModel() + plateModel = self.plate.createModel() + + boltModels = [] + for bolt in bolt_list: + boltModels.append(bolt.createModel()) + + #color = Quantity_NOC_SADDLEBROWN, + nutModels = [] + for nut in nut_list: + nutModels.append(nut.createModel()) + + memberList = [iSectionModel1,iSectionModel2,weldModel,plateModel,boltModels,nutModels] + + return memberList
\ No newline at end of file diff --git a/Connections/Shear/Finplate/colWebBeamWebConnectivity.py b/Connections/Shear/Finplate/colWebBeamWebConnectivity.py new file mode 100644 index 0000000..cb58633 --- /dev/null +++ b/Connections/Shear/Finplate/colWebBeamWebConnectivity.py @@ -0,0 +1,145 @@ +''' +Created on 11-May-2015 + +@author: deepa +''' + +import numpy +from OCC.Graphic3d import Graphic3d_NOT_2D_ALUMINUM +from bolt import Bolt +from nut import Nut + +import copy +class ColWebBeamWeb(object): + + def __init__(self,column,beam,Fweld,plate,boltRadius,nutRadius): + self.column = column + self.beam = beam + self.weld = Fweld + self.weld2 = copy.deepcopy(Fweld) + self.plate = plate + self.boltRadius = boltRadius + self.nutRadius = nutRadius + + + def create_3dmodel(self): + + # ISection COLUMN + origin1 = numpy.array([0, 0, 0]) + uDir1 = numpy.array([1.0, 0, 0]) + wDir1 = numpy.array([0.0, 0, 1.0]) + t = 8.9 + weldThick = 8 + + self.column.place(origin1, uDir1, wDir1) + + # ISection BEAM + uDir2 = numpy.array([0, 1.0, 0]) + wDir2 = numpy.array([1.0, 0, 0.0]) + d = t/2.0 + weldThick + origin2 = numpy.array([0, 0, 500]) + (d+7.55) * wDir2 + #self.beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500) + self.beam.place(origin2, uDir2, wDir2) + + # # WELD + # + # plateThickness = 10 + # uDir3 = numpy.array([0, 1.0, 0]) + # wDir3 = numpy.array([1.0, 0, 0.0]) + # origin3 = (self.column.secOrigin + + # self.column.t/2.0 * self.column.uDir + + # self.column.length/2.0 * self.column.wDir + + # self.beam.t/2.0 * (-self.beam.uDir)+ + # self.weld.W/2.0 * (-self.beam.uDir)) + # #origin3 = numpy.array([0, 0, 500]) + t/2.0 *wDir3 + plateThickness/2.0 * (-self.beam.uDir) + # self.weld.place(origin3, uDir3, wDir3) + + # PLATE + + uDir4 = numpy.array([0, 1.0, 0]) + wDir4 = numpy.array([1.0, 0, 0.0]) + #origin4 = self.weld.secOrigin + self.weld.T * self.weld.wDir + plateOrigin = (self.column.secOrigin + + self.column.t/2.0 * self.column.uDir + + self.column.length/2.0 * self.column.wDir + + self.beam.t/2.0 * (-self.beam.uDir)+ + self.plate.T/2.0 * (-self.beam.uDir)) + #origin4 = self.column.secOrigin + self.weld.T * self.weld.wDir + self.plate.place(plateOrigin, uDir4, wDir4) + +# # Weld + uDir5 = numpy.array([1.0, 0.0, 0]) + wDir5 = numpy.array([0.0, 0.0, 1.0]) + filletWeld1Origin = (plateOrigin + self.plate.T/2.0 *self.weld.vDir + self.weld.L/2.0 * (-self.weld.wDir) ) + self.weld.place(filletWeld1Origin, uDir5, wDir5) + + + uDir555 = numpy.array([0.0, -1.0, 0]) + wDir5 = numpy.array([0.0, 0.0, 1.0]) + filletWeld2Origin = (filletWeld1Origin + self.plate.T * (-self.weld.vDir)) + self.weld2.place(filletWeld2Origin,uDir555,wDir5) + + # BOLT BODY + bolt_T = 6.0 + origin51 = (self.plate.secOrigin + (- + self.plate.T/2.0 - bolt_T) * self.plate.uDir + + self.plate.W/2.0 * self.plate.wDir) + + uDir5 = self.plate.wDir + wDir5 = self.plate.uDir + + ## Bolt1 + bolt1 = Bolt(R = self.boltRadius,T = bolt_T, H = 30.0, r = 4.0 ) + bolt1.place(origin51, uDir5, wDir5) + + ## Bolt2 + bolt2 = Bolt(R = self.boltRadius, T = bolt_T, H = 30.0, r = 4.0 ) + origin52 = origin51 + 50 *self.plate.vDir + bolt2.place(origin52, uDir5, wDir5) + + ## Bolt3 + bolt3 = Bolt(R = self.boltRadius,T = bolt_T, H = 30.0, r = 4.0 ) + origin53 = origin51 - 50*self.plate.vDir + bolt3.place(origin53, uDir5, wDir5) + bolt_list =[bolt1,bolt2,bolt3] + + #nutbody = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + # NUTBODY + ## Nut1 + nut1 = Nut(R = self.nutRadius,T = 10.0, H = 11, innerR1 = 4.0, outerR2 = 8.3) + uDir = uDir5 + wDir = wDir5 + nut_Origin1 = origin51 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir) + nut1.place(nut_Origin1, uDir, wDir) + + ## Nut2 + nut2 = Nut(R = self.nutRadius,T = 10.0, H = 11, innerR1 = 4.0, outerR2 = 8.3) + nut_Origin2 = origin52 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir) + nut2.place(nut_Origin2, uDir, wDir) + + ## Nut3 + nut3 =Nut(R = self.nutRadius, T = 10.0, H = 11, innerR1 = 4.0, outerR2 = 8.3) + nut_Origin3 = origin53 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir) + nut3.place(nut_Origin3, uDir5, wDir5) + nut_list = [nut1,nut2,nut3] + + # Call for createModel + iSectionModel1 = self.column.createModel() + iSectionModel2 = self.beam.createModel() + + plateModel = self.plate.createModel() + weldModel1 = self.weld.createModel() + weldModel2 = self.weld2.createModel() + + boltModels = [] + for bolt in bolt_list: + boltModels.append(bolt.createModel()) + + #color = Quantity_NOC_SADDLEBROWN, + nutModels = [] + for nut in nut_list: + nutModels.append(nut.createModel()) + + memberList = [iSectionModel1,iSectionModel2,weldModel1,weldModel2,plateModel,boltModels,nutModels] + + return memberList
\ No newline at end of file diff --git a/Connections/Shear/Finplate/doc/build.txt b/Connections/Shear/Finplate/doc/build.txt new file mode 100644 index 0000000..b437043 --- /dev/null +++ b/Connections/Shear/Finplate/doc/build.txt @@ -0,0 +1,5 @@ +This converts designer file(.ui file)to python file (.py file) +pyuic4 -x finplatewindow.ui -o ui_finplatewindow.py + +This compiles resource file (.qrc file) to python file(.pyfile) +pyrcc4 ./ResourceFiles/icons.qrc -o icons_rc.py
\ No newline at end of file diff --git a/Connections/Shear/Finplate/exampleSimpleGUI.py b/Connections/Shear/Finplate/exampleSimpleGUI.py new file mode 100644 index 0000000..8134a01 --- /dev/null +++ b/Connections/Shear/Finplate/exampleSimpleGUI.py @@ -0,0 +1,220 @@ +#!/usr/bin/env python + +##Copyright 2009-2014 Thomas Paviot (tpaviot@gmail.com) +## +##This file is part of pythonOCC. +## +##pythonOCC is free software: you can redistribute it and/or modify +##it under the terms of the GNU Lesser General Public License as published by +##the Free Software Foundation, either version 3 of the License, or +##(at your option) any later version. +## +##pythonOCC is distributed in the hope that it will be useful, +##but WITHOUT ANY WARRANTY; without even the implied warranty of +##MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +##GNU Lesser General Public License for more details. +## +##You should have received a copy of the GNU Lesser General Public License +##along with pythonOCC. If not, see <http://www.gnu.org/licenses/>. + +import sys +from OCC import VERSION, Quantity +from OCC.Graphic3d import * +from OCC.V3d import V3d_ORTHOGRAPHIC, V3d_WIREFRAME, V3d_PERSPECTIVE +from OCC.Quantity import Quantity_Color, Quantity_TOC_RGB + + +def get_backend(): + """ + loads a backend + backends are loaded in order of preference + since python comes with Tk included, but that PySide or PyQt4 + is much preferred + """ + try: + from PySide import QtCore, QtGui + return 'pyside' + except: + pass + try: + from PyQt4 import QtCore, QtGui + return 'pyqt4' + except: + pass + # Check wxPython + try: + import wx + return 'wx' + except: + raise ImportError("No compliant GUI library found. You must have either PySide, PyQt4 or wxPython installed.") + sys.exit(1) + + +def init_display(backend_str=None, size=(1024, 768)): + global display, add_menu, add_function_to_menu, start_display, app, win, USED_BACKEND + + if not backend_str: + USED_BACKEND = get_backend() + elif backend_str in ['wx', 'pyside', 'pyqt4']: + USED_BACKEND = backend_str + else: + raise ValueError("You should pass either 'wx','qt' or 'tkinter' to the init_display function.") + sys.exit(1) +# # wxPython based simple GUI +# if USED_BACKEND == 'wx': +# try: +# import wx +# except: +# raise ImportError("Please install wxPython.") +# from wxDisplay import wxViewer3d +# +# class AppFrame(wx.Frame): +# def __init__(self, parent): +# wx.Frame.__init__(self, parent, -1, "pythonOCC-%s 3d viewer ('wx' backend)" % VERSION, style=wx.DEFAULT_FRAME_STYLE, size=size) +# self.canva = wxViewer3d(self) +# self.menuBar = wx.MenuBar() +# self._menus = {} +# self._menu_methods = {} +# +# def add_menu(self, menu_name): +# _menu = wx.Menu() +# self.menuBar.Append(_menu, "&"+menu_name) +# self.SetMenuBar(self.menuBar) +# self._menus[menu_name] = _menu +# +# def add_function_to_menu(self, menu_name, _callable): +# # point on curve +# _id = wx.NewId() +# assert callable(_callable), 'the function supplied is not callable' +# try: +# self._menus[menu_name].Append(_id, _callable.__name__.replace('_', ' ').lower()) +# except KeyError: +# raise ValueError('the menu item %s does not exist' % menu_name) +# self.Bind(wx.EVT_MENU, _callable, id=_id) +# app = wx.PySimpleApp() +# win = AppFrame(None) +# win.Show(True) +# wx.SafeYield() +# win.canva.InitDriver() +# app.SetTopWindow(win) +# display = win.canva._display +# +# def add_menu(*args, **kwargs): +# win.add_menu(*args, **kwargs) +# +# def add_function_to_menu(*args, **kwargs): +# win.add_function_to_menu(*args, **kwargs) +# +# def start_display(): +# app.MainLoop() + + # Qt based simple GUI + if USED_BACKEND in ['pyqt4', 'pyside']: + if USED_BACKEND == 'pyqt4': + from PyQt4 import QtCore, QtGui, QtOpenGL + from OCC.Display.pyqt4Display import qtViewer3d + elif USED_BACKEND == 'pyside': + from PySide import QtCore, QtGui, QtOpenGL + from OCC.Display.pysideDisplay import qtViewer3d + + class MainWindow(QtGui.QMainWindow): + def __init__(self, *args): + QtGui.QMainWindow.__init__(self, *args) + self.canva = qtViewer3d(self) + self.setWindowTitle("pythonOCC-%s 3d viewer ('%s' backend)" % (VERSION, USED_BACKEND)) + self.resize(size[0], size[1]) + self.setCentralWidget(self.canva) + if not sys.platform == 'darwin': + self.menu_bar = self.menuBar() + else: + # create a parentless menubar + # see: http://stackoverflow.com/questions/11375176/qmenubar-and-qmenu-doesnt-show-in-mac-os-x?lq=1 + # noticeable is that the menu ( alas ) is created in the topleft of the screen, just + # next to the apple icon + # still does ugly things like showing the "Python" menu in bold + self.menu_bar = QtGui.QMenuBar() + self._menus = {} + self._menu_methods = {} + # place the window in the center of the screen, at half the screen size + self.centerOnScreen() + + def centerOnScreen(self): + '''Centers the window on the screen.''' + resolution = QtGui.QDesktopWidget().screenGeometry() + self.move((resolution.width() / 2) - (self.frameSize().width() / 2), + (resolution.height() / 2) - (self.frameSize().height() / 2)) + + def add_menu(self, menu_name): + _menu = self.menu_bar.addMenu("&"+menu_name) + self._menus[menu_name] = _menu + + def add_function_to_menu(self, menu_name, _callable): + assert callable(_callable), 'the function supplied is not callable' + try: + _action = QtGui.QAction(_callable.__name__.replace('_', ' ').lower(), self) + # if not, the "exit" action is now shown... + _action.setMenuRole(QtGui.QAction.NoRole) + self.connect(_action, QtCore.SIGNAL("triggered()"), _callable) + self._menus[menu_name].addAction(_action) + except KeyError: + raise ValueError('the menu item %s does not exist' % menu_name) + # following couple of lines is a twek to enable ipython --gui='qt' + app = QtGui.QApplication.instance() # checks if QApplication already exists + if not app: # create QApplication if it doesnt exist + app = QtGui.QApplication(sys.argv) + win = MainWindow() + win.show() + win.canva.InitDriver() + display = win.canva._display + if sys.platform != "linux2": + display.EnableAntiAliasing() + # background gradient + #display.set_bg_gradient_color(206, 215, 222, 128, 128, 128) + display.set_bg_gradient_color(23,1,32,23,1,32) + #display.View.SetVisualization(V3d_ORTHOGRAPHIC) + + # display black trihedron + display.display_trihedron() + display.View.SetProj(1, 1, 1) + + def add_menu(*args, **kwargs): + win.add_menu(*args, **kwargs) + + def add_function_to_menu(*args, **kwargs): + win.add_function_to_menu(*args, **kwargs) + + def start_display(): + win.raise_() # make the application float to the top + app.exec_() + return display, start_display, add_menu, add_function_to_menu + +if __name__ == '__main__': + display, start_display, add_menu, add_function_to_menu = init_display() + from OCC.BRepPrimAPI import BRepPrimAPI_MakeSphere, BRepPrimAPI_MakeBox + #print(display.Viewer.TypeOfView) + + def sphere(event=None): + display.DisplayShape(BRepPrimAPI_MakeSphere(100).Shape(), update=True) + + def cube(event=None): + display.DisplayShape(BRepPrimAPI_MakeBox(1, 1, 5).Shape(), material= Graphic3d_NOM_ALUMINIUM, update=True) + #display.Viewer.SetDefaultTypeOfView(V3d_ORTHOGRAPHIC) + + #aColor1 = Quantity_Color(float(255)/255., + # float(0)/255., + # float(0)/255., Quantity_TOC_RGB) + + #display.Viewer.SetDefaultBackgroundColor(aColor1) + + #display.SetModeShaded() + #display.View_Top() + + def exit(event=None): + sys.exit() + + add_menu('primitives') + add_function_to_menu('primitives', sphere) + add_function_to_menu('primitives', cube) + add_function_to_menu('primitives', exit) + cube() + start_display() diff --git a/Connections/Shear/Finplate/filletweld.py b/Connections/Shear/Finplate/filletweld.py new file mode 100644 index 0000000..91d8cef --- /dev/null +++ b/Connections/Shear/Finplate/filletweld.py @@ -0,0 +1,44 @@ +''' +Created on 27-May-2015 + +@author: deepa +''' +import numpy +from ModelUtils import * +from OCC.BRepAlgoAPI import BRepAlgoAPI_Fuse + +class FilletWeld(object): + + def __init__(self,b,h,L): + self.L = L + self.b = b + self.h = h + self.secOrigin = numpy.array([0, 0, 0]) + self.uDir = numpy.array([1.0, 0, 0]) + self.wDir = numpy.array([0.0, 0, 1.0]) + self.computeParams() + + def place(self, secOrigin, uDir, wDir): + self.secOrigin = secOrigin + self.uDir = uDir + self.wDir = wDir + self.computeParams() + + def computeParams(self): + self.vDir = numpy.cross(self.wDir, self.uDir) + self.a1 = self.secOrigin + self.a2 = self.secOrigin + self.b * self.uDir + self.a3 = self.secOrigin + self.h * self.vDir + self.points = [self.a1, self.a2, self.a3,] + + + def createModel(self): + Pnt = getGpPt(self.secOrigin) + edges = makeEdgesFromPoints(self.points) + wire = makeWireFromEdges(edges) + aFace = makeFaceFromWire(wire) + extrudeDir = self.L * (self.wDir) # extrudeDir is a numpy array + prism = makePrismFromFace(aFace, extrudeDir) + my_sphere = BRepPrimAPI_MakeSphere(Pnt,5.0).Shape() + spherebody = BRepAlgoAPI_Fuse(prism, my_sphere).Shape() + return prism
\ No newline at end of file diff --git a/Connections/Shear/Finplate/fin.log b/Connections/Shear/Finplate/fin.log new file mode 100644 index 0000000..d2e8b78 --- /dev/null +++ b/Connections/Shear/Finplate/fin.log @@ -0,0 +1 @@ +<link rel="stylesheet" type="text/css" href="log.css"/> diff --git a/Connections/Shear/Finplate/finPlate.ui b/Connections/Shear/Finplate/finPlate.ui new file mode 100644 index 0000000..e783838 --- /dev/null +++ b/Connections/Shear/Finplate/finPlate.ui @@ -0,0 +1,4172 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>1335</width> + <height>767</height> + </rect> + </property> + <property name="windowTitle"> + <string>Fin Plate</string> + </property> + <property name="windowIcon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/download1.png</normaloff>:/newPrefix/images/download1.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>20</width> + <height>2</height> + </size> + </property> + <widget class="QWidget" name="centralwidget"> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QFrame" name="frame"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>28</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>28</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QToolButton" name="btnInput"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="text"> + <string>input</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/input.png</normaloff>:/newPrefix/images/input.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnOutput"> + <property name="geometry"> + <rect> + <x>30</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/output.png</normaloff>:/newPrefix/images/output.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnZmOut"> + <property name="geometry"> + <rect> + <x>80</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Zoom In</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/zoom_in_01.png</normaloff>:/newPrefix/images/zoom_in_01.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnZmIn"> + <property name="geometry"> + <rect> + <x>110</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Zoom Out</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/zoom_out_01.png</normaloff>:/newPrefix/images/zoom_out_01.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnSvgSave"> + <property name="geometry"> + <rect> + <x>200</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Save Image</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/save.png</normaloff>:/newPrefix/images/save.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnTotatAcw"> + <property name="geometry"> + <rect> + <x>140</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Rotate Left</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/rotate-ccw.png</normaloff>:/newPrefix/images/rotate-ccw.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnRotatCw"> + <property name="geometry"> + <rect> + <x>170</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Rotate Right</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/rotate-cw.png</normaloff>:/newPrefix/images/rotate-cw.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>25</width> + <height>25</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btn3D"> + <property name="geometry"> + <rect> + <x>390</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <family>Droid Serif</family> + <pointsize>11</pointsize> + <weight>75</weight> + <italic>true</italic> + <bold>true</bold> + <underline>false</underline> + <strikeout>false</strikeout> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>3D Model</string> + </property> + <property name="text"> + <string>3D</string> + </property> + <property name="autoRaise"> + <bool>false</bool> + </property> + <property name="arrowType"> + <enum>Qt::NoArrow</enum> + </property> + </widget> + <widget class="QCheckBox" name="chkBxBeam"> + <property name="geometry"> + <rect> + <x>430</x> + <y>0</y> + <width>71</width> + <height>29</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="text"> + <string>Beam</string> + </property> + </widget> + <widget class="QCheckBox" name="chkBxCol"> + <property name="geometry"> + <rect> + <x>510</x> + <y>0</y> + <width>91</width> + <height>29</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="text"> + <string>Column</string> + </property> + </widget> + <widget class="QCheckBox" name="chkBxFinplate"> + <property name="geometry"> + <rect> + <x>600</x> + <y>0</y> + <width>92</width> + <height>29</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="text"> + <string>Finplate</string> + </property> + </widget> + <widget class="QToolButton" name="btn_front"> + <property name="geometry"> + <rect> + <x>270</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="acceptDrops"> + <bool>true</bool> + </property> + <property name="toolTip"> + <string>Front View</string> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>../../../../../Downloads/ZY.png</normaloff>../../../../../Downloads/ZY.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btn_top"> + <property name="geometry"> + <rect> + <x>300</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Top View</string> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>../../../../../Downloads/Y-X.png</normaloff>../../../../../Downloads/Y-X.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>23</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btn_side"> + <property name="geometry"> + <rect> + <x>330</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Side View</string> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>../../../../../Downloads/Z-Y.png</normaloff>../../../../../Downloads/Z-Y.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + </widget> + </widget> + </item> + <item> + <widget class="QSplitter" name="splitter"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <widget class="QFrame" name="frame_2"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>100</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <property name="lineWidth"> + <number>1</number> + </property> + <property name="midLineWidth"> + <number>1</number> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="margin"> + <number>1</number> + </property> + <item> + <widget class="QTabWidget" name="mytabWidget"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>450</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="styleSheet"> + <string notr="true">QTabBar::tab { height: 75px; width: 1px; }</string> + </property> + <property name="tabPosition"> + <enum>QTabWidget::West</enum> + </property> + <property name="currentIndex"> + <number>-1</number> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QTextEdit" name="textEdit"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>125</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> + </widget> + </widget> + </item> + </layout> + </widget> + <widget class="QMenuBar" name="menubar"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>1335</width> + <height>30</height> + </rect> + </property> + <widget class="QMenu" name="menuFile"> + <property name="title"> + <string>File</string> + </property> + <addaction name="actionNew"/> + <addaction name="separator"/> + <addaction name="actionOpen"/> + <addaction name="separator"/> + <addaction name="actionSave"/> + <addaction name="separator"/> + <addaction name="actionSave_3D_model_as"/> + <addaction name="separator"/> + <addaction name="actionSave_current_2D_image_as"/> + <addaction name="separator"/> + <addaction name="actionSave_log_messages"/> + <addaction name="separator"/> + <addaction name="actionCreate_design_report"/> + <addaction name="separator"/> + <addaction name="actionQuit_fin_plate_design"/> + </widget> + <widget class="QMenu" name="menuEdit"> + <property name="title"> + <string>Edit</string> + </property> + <addaction name="actionCut"/> + <addaction name="actionCopy"/> + <addaction name="actionPaste"/> + </widget> + <widget class="QMenu" name="menuView"> + <property name="title"> + <string>View</string> + </property> + <addaction name="actionEnlarge_font_size"/> + <addaction name="separator"/> + <addaction name="actionReduce_font_size"/> + </widget> + <widget class="QMenu" name="menuHelp"> + <property name="title"> + <string>Help</string> + </property> + <addaction name="actionAbout_Osdag"/> + </widget> + <widget class="QMenu" name="menuGraphics"> + <property name="title"> + <string>Graphics</string> + </property> + <addaction name="actionZoom_in"/> + <addaction name="separator"/> + <addaction name="actionZoom_out"/> + <addaction name="separator"/> + <addaction name="actionPan"/> + <addaction name="separator"/> + <addaction name="actionRotate_3D_model"/> + <addaction name="separator"/> + <addaction name="actionView_2D_on_XY"/> + <addaction name="separator"/> + <addaction name="actionView_2D_on_YZ"/> + <addaction name="separator"/> + <addaction name="actionView_2D_on_ZX"/> + </widget> + <addaction name="menuFile"/> + <addaction name="menuEdit"/> + <addaction name="menuView"/> + <addaction name="menuGraphics"/> + <addaction name="menuHelp"/> + </widget> + <widget class="QDockWidget" name="inputDock"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>1</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>125</width> + <height>710</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>310</width> + <height>710</height> + </size> + </property> + <property name="baseSize"> + <size> + <width>310</width> + <height>710</height> + </size> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="floating"> + <bool>false</bool> + </property> + <property name="features"> + <set>QDockWidget::AllDockWidgetFeatures</set> + </property> + <property name="windowTitle"> + <string>INPUT</string> + </property> + <attribute name="dockWidgetArea"> + <number>1</number> + </attribute> + <widget class="QWidget" name="dockWidgetContents"> + <widget class="QLineEdit" name="txtFy"> + <property name="geometry"> + <rect> + <x>150</x> + <y>140</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="placeholderText"> + <string>000.000</string> + </property> + </widget> + <widget class="QLabel" name="label_3"> + <property name="geometry"> + <rect> + <x>6</x> + <y>75</y> + <width>151</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Column section *</p></body></html></string> + </property> + </widget> + <widget class="QComboBox" name="comboConnLoc"> + <property name="geometry"> + <rect> + <x>150</x> + <y>170</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <item> + <property name="text"> + <string>Select Connectivity</string> + </property> + </item> + <item> + <property name="text"> + <string>Column flange-Beam web</string> + </property> + </item> + <item> + <property name="text"> + <string>Column web-Beam web</string> + </property> + </item> + </widget> + <widget class="QLineEdit" name="txtFu"> + <property name="geometry"> + <rect> + <x>150</x> + <y>110</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="placeholderText"> + <string>000.000</string> + </property> + </widget> + <widget class="QLabel" name="label"> + <property name="geometry"> + <rect> + <x>1</x> + <y>15</y> + <width>221</width> + <height>21</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Connecting members</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_4"> + <property name="geometry"> + <rect> + <x>6</x> + <y>170</y> + <width>120</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Connectivity *</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="lbl_fu"> + <property name="geometry"> + <rect> + <x>6</x> + <y>110</y> + <width>120</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-style:italic;">f</span><span style=" font-style:italic; vertical-align:sub;">u </span>(MPa) * </p></body></html></string> + </property> + </widget> + <widget class="QComboBox" name="comboColSec"> + <property name="geometry"> + <rect> + <x>150</x> + <y>75</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + </widget> + <widget class="QLabel" name="lbl_fy"> + <property name="geometry"> + <rect> + <x>6</x> + <y>135</y> + <width>120</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-style:italic;">f</span><span style=" vertical-align:sub;">y (</span>MPa) *</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_18"> + <property name="geometry"> + <rect> + <x>1</x> + <y>240</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Factored load</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="lbl_shear"> + <property name="geometry"> + <rect> + <x>6</x> + <y>270</y> + <width>151</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Shear force (kN) *</string> + </property> + </widget> + <widget class="QLineEdit" name="txtShear"> + <property name="geometry"> + <rect> + <x>150</x> + <y>270</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QLabel" name="label_5"> + <property name="geometry"> + <rect> + <x>1</x> + <y>300</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QComboBox" name="comboType"> + <property name="geometry"> + <rect> + <x>150</x> + <y>360</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="maxVisibleItems"> + <number>10</number> + </property> + </widget> + <widget class="QLabel" name="label_6"> + <property name="geometry"> + <rect> + <x>6</x> + <y>390</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Grade *</string> + </property> + </widget> + <widget class="QComboBox" name="comboGrade"> + <property name="geometry"> + <rect> + <x>150</x> + <y>390</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>6</number> + </property> + </widget> + <widget class="QLabel" name="label_7"> + <property name="geometry"> + <rect> + <x>6</x> + <y>330</y> + <width>131</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Diameter (mm) <span style=" color:#555500;">*</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_8"> + <property name="geometry"> + <rect> + <x>6</x> + <y>360</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Type *</string> + </property> + </widget> + <widget class="QComboBox" name="comboDaimeter"> + <property name="geometry"> + <rect> + <x>150</x> + <y>330</y> + <width>160</width> + <height>27</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + <item> + <property name="text"> + <string>Diameter of Bolt</string> + </property> + </item> + <item> + <property name="text"> + <string>5</string> + </property> + </item> + <item> + <property name="text"> + <string>6</string> + </property> + </item> + <item> + <property name="text"> + <string>8</string> + </property> + </item> + <item> + <property name="text"> + <string>10</string> + </property> + </item> + <item> + <property name="text"> + <string>12</string> + </property> + </item> + <item> + <property name="text"> + <string>16</string> + </property> + </item> + <item> + <property name="text"> + <string>20</string> + </property> + </item> + <item> + <property name="text"> + <string>24</string> + </property> + </item> + <item> + <property name="text"> + <string>30</string> + </property> + </item> + <item> + <property name="text"> + <string>36</string> + </property> + </item> + </widget> + <widget class="QLabel" name="lbl_width_2"> + <property name="geometry"> + <rect> + <x>6</x> + <y>510</y> + <width>111</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Width (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_40"> + <property name="geometry"> + <rect> + <x>1</x> + <y>420</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_41"> + <property name="geometry"> + <rect> + <x>6</x> + <y>450</y> + <width>131</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Thickness (mm) *</p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateLen"> + <property name="geometry"> + <rect> + <x>150</x> + <y>480</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QLabel" name="lbl_len_2"> + <property name="geometry"> + <rect> + <x>6</x> + <y>480</y> + <width>111</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Height (mm)</string> + </property> + </widget> + <widget class="QComboBox" name="comboPlateThick_2"> + <property name="geometry"> + <rect> + <x>150</x> + <y>450</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + <item> + <property name="text"> + <string>Thickness of Plate</string> + </property> + </item> + <item> + <property name="text"> + <string>6</string> + </property> + </item> + <item> + <property name="text"> + <string>8</string> + </property> + </item> + <item> + <property name="text"> + <string>10</string> + </property> + </item> + <item> + <property name="text"> + <string>12</string> + </property> + </item> + </widget> + <widget class="QLabel" name="label_42"> + <property name="geometry"> + <rect> + <x>1</x> + <y>540</y> + <width>66</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_43"> + <property name="geometry"> + <rect> + <x>6</x> + <y>570</y> + <width>131</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Thickness (mm) *</p></body></html></string> + </property> + </widget> + <widget class="QFrame" name="outputFrame_2"> + <property name="geometry"> + <rect> + <x>988</x> + <y>620</y> + <width>320</width> + <height>690</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>320</width> + <height>690</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QLineEdit" name="txtShrCapacity_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>50</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>80</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>110</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtNoBolts_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>320</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldThick_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>410</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>440</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateThick_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_44"> + <property name="geometry"> + <rect> + <x>4</x> + <y>30</y> + <width>66</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_45"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Shear Capacity (kN)</string> + </property> + </widget> + <widget class="QLabel" name="label_46"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing Capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="labl123_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of Bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="t_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Bolts</string> + </property> + </widget> + <widget class="QLabel" name="label_47"> + <property name="geometry"> + <rect> + <x>10</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_48"> + <property name="geometry"> + <rect> + <x>10</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>End Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_49"> + <property name="geometry"> + <rect> + <x>10</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_50"> + <property name="geometry"> + <rect> + <x>10</x> + <y>440</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Weld Strength (kN/mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_51"> + <property name="geometry"> + <rect> + <x>10</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_52"> + <property name="geometry"> + <rect> + <x>4</x> + <y>350</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_53"> + <property name="geometry"> + <rect> + <x>10</x> + <y>320</y> + <width>140</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Edge Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_54"> + <property name="geometry"> + <rect> + <x>10</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_55"> + <property name="geometry"> + <rect> + <x>10</x> + <y>410</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Resultant Shear (kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_56"> + <property name="geometry"> + <rect> + <x>10</x> + <y>540</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>External Moment (kNm)</string> + </property> + </widget> + <widget class="QLabel" name="label_57"> + <property name="geometry"> + <rect> + <x>4</x> + <y>480</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt_2"> + <property name="geometry"> + <rect> + <x>180</x> + <y>540</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity_2"> + <property name="geometry"> + <rect> + <x>180</x> + <y>570</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_58"> + <property name="geometry"> + <rect> + <x>10</x> + <y>570</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Moment Capacity (KNm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Column</string> + </property> + </widget> + <widget class="QLabel" name="lbl_row_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Row</string> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_3"> + <property name="geometry"> + <rect> + <x>180</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_4"> + <property name="geometry"> + <rect> + <x>180</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLabel" name="label_59"> + <property name="geometry"> + <rect> + <x>120</x> + <y>0</y> + <width>60</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; color:#00007f;">OUTPUT</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="pushButton_2"> + <property name="geometry"> + <rect> + <x>20</x> + <y>620</y> + <width>40</width> + <height>50</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>:/images/logo.jpg</normaloff>:/images/logo.jpg</iconset> + </property> + <property name="iconSize"> + <size> + <width>40</width> + <height>50</height> + </size> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + </widget> + <widget class="QPushButton" name="btnReset_2"> + <property name="geometry"> + <rect> + <x>30</x> + <y>1249</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btnDesign_2"> + <property name="geometry"> + <rect> + <x>150</x> + <y>1249</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + <widget class="QFrame" name="outputFrame_3"> + <property name="geometry"> + <rect> + <x>1088</x> + <y>610</y> + <width>320</width> + <height>690</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>320</width> + <height>690</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QLineEdit" name="txtShrCapacity_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>50</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>80</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>110</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtNoBolts_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>320</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldThick_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>410</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>440</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateThick_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_60"> + <property name="geometry"> + <rect> + <x>4</x> + <y>30</y> + <width>66</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_61"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Shear Capacity (kN)</string> + </property> + </widget> + <widget class="QLabel" name="label_62"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing Capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="labl123_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of Bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="t_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Bolts</string> + </property> + </widget> + <widget class="QLabel" name="label_63"> + <property name="geometry"> + <rect> + <x>10</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_64"> + <property name="geometry"> + <rect> + <x>10</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>End Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_65"> + <property name="geometry"> + <rect> + <x>10</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_66"> + <property name="geometry"> + <rect> + <x>10</x> + <y>440</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Weld Strength (kN/mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_67"> + <property name="geometry"> + <rect> + <x>10</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_68"> + <property name="geometry"> + <rect> + <x>4</x> + <y>350</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_69"> + <property name="geometry"> + <rect> + <x>10</x> + <y>320</y> + <width>140</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Edge Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_70"> + <property name="geometry"> + <rect> + <x>10</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_71"> + <property name="geometry"> + <rect> + <x>10</x> + <y>410</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Resultant Shear (kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_72"> + <property name="geometry"> + <rect> + <x>10</x> + <y>540</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>External Moment (kNm)</string> + </property> + </widget> + <widget class="QLabel" name="label_73"> + <property name="geometry"> + <rect> + <x>4</x> + <y>480</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt_3"> + <property name="geometry"> + <rect> + <x>180</x> + <y>540</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity_3"> + <property name="geometry"> + <rect> + <x>180</x> + <y>570</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_74"> + <property name="geometry"> + <rect> + <x>10</x> + <y>570</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Moment Capacity (KNm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Column</string> + </property> + </widget> + <widget class="QLabel" name="lbl_row_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Row</string> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_5"> + <property name="geometry"> + <rect> + <x>180</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_6"> + <property name="geometry"> + <rect> + <x>180</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLabel" name="label_75"> + <property name="geometry"> + <rect> + <x>120</x> + <y>0</y> + <width>60</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; color:#00007f;">OUTPUT</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="pushButton_3"> + <property name="geometry"> + <rect> + <x>20</x> + <y>620</y> + <width>40</width> + <height>50</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>:/images/logo.jpg</normaloff>:/images/logo.jpg</iconset> + </property> + <property name="iconSize"> + <size> + <width>40</width> + <height>50</height> + </size> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + </widget> + <widget class="QPushButton" name="btnReset_3"> + <property name="geometry"> + <rect> + <x>130</x> + <y>1239</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btnDesign_3"> + <property name="geometry"> + <rect> + <x>250</x> + <y>1239</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + <widget class="QFrame" name="outputFrame_4"> + <property name="geometry"> + <rect> + <x>1048</x> + <y>580</y> + <width>320</width> + <height>690</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>320</width> + <height>690</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QLineEdit" name="txtShrCapacity_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>50</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>80</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>110</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtNoBolts_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>320</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldThick_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>410</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>440</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateThick_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_76"> + <property name="geometry"> + <rect> + <x>4</x> + <y>30</y> + <width>66</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_77"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Shear Capacity (kN)</string> + </property> + </widget> + <widget class="QLabel" name="label_78"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing Capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="labl123_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of Bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="t_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Bolts</string> + </property> + </widget> + <widget class="QLabel" name="label_79"> + <property name="geometry"> + <rect> + <x>10</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_80"> + <property name="geometry"> + <rect> + <x>10</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>End Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_81"> + <property name="geometry"> + <rect> + <x>10</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_82"> + <property name="geometry"> + <rect> + <x>10</x> + <y>440</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Weld Strength (kN/mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_83"> + <property name="geometry"> + <rect> + <x>10</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_84"> + <property name="geometry"> + <rect> + <x>4</x> + <y>350</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_85"> + <property name="geometry"> + <rect> + <x>10</x> + <y>320</y> + <width>140</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Edge Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_86"> + <property name="geometry"> + <rect> + <x>10</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_87"> + <property name="geometry"> + <rect> + <x>10</x> + <y>410</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Resultant Shear (kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_88"> + <property name="geometry"> + <rect> + <x>10</x> + <y>540</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>External Moment (kNm)</string> + </property> + </widget> + <widget class="QLabel" name="label_89"> + <property name="geometry"> + <rect> + <x>4</x> + <y>480</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt_4"> + <property name="geometry"> + <rect> + <x>180</x> + <y>540</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity_4"> + <property name="geometry"> + <rect> + <x>180</x> + <y>570</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_90"> + <property name="geometry"> + <rect> + <x>10</x> + <y>570</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Moment Capacity (KNm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Column</string> + </property> + </widget> + <widget class="QLabel" name="lbl_row_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Row</string> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_7"> + <property name="geometry"> + <rect> + <x>180</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_8"> + <property name="geometry"> + <rect> + <x>180</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLabel" name="label_91"> + <property name="geometry"> + <rect> + <x>120</x> + <y>0</y> + <width>60</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; color:#00007f;">OUTPUT</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="pushButton_4"> + <property name="geometry"> + <rect> + <x>20</x> + <y>620</y> + <width>40</width> + <height>50</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>:/images/logo.jpg</normaloff>:/images/logo.jpg</iconset> + </property> + <property name="iconSize"> + <size> + <width>40</width> + <height>50</height> + </size> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + </widget> + <widget class="QPushButton" name="btnReset_4"> + <property name="geometry"> + <rect> + <x>90</x> + <y>1209</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btnDesign_4"> + <property name="geometry"> + <rect> + <x>210</x> + <y>1209</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateWidth"> + <property name="geometry"> + <rect> + <x>150</x> + <y>510</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QPushButton" name="btn_Reset"> + <property name="geometry"> + <rect> + <x>20</x> + <y>630</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btn_Design"> + <property name="geometry"> + <rect> + <x>140</x> + <y>630</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + </widget> + <widget class="QComboBox" name="combo_Beam"> + <property name="geometry"> + <rect> + <x>150</x> + <y>45</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + </widget> + <widget class="QComboBox" name="comboWldSize"> + <property name="geometry"> + <rect> + <x>150</x> + <y>570</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="currentIndex"> + <number>0</number> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + <item> + <property name="text"> + <string>Select Weld Sizes</string> + </property> + </item> + <item> + <property name="text"> + <string>3</string> + </property> + </item> + <item> + <property name="text"> + <string>5</string> + </property> + </item> + <item> + <property name="text"> + <string>6</string> + </property> + </item> + <item> + <property name="text"> + <string>8</string> + </property> + </item> + <item> + <property name="text"> + <string>10</string> + </property> + </item> + </widget> + <widget class="QLabel" name="lbl_connectivity"> + <property name="geometry"> + <rect> + <x>180</x> + <y>210</y> + <width>60</width> + <height>50</height> + </rect> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_9"> + <property name="geometry"> + <rect> + <x>6</x> + <y>45</y> + <width>131</width> + <height>22</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Beam section *</string> + </property> + </widget> + </widget> + </widget> + <widget class="QDockWidget" name="outputDock"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>125</width> + <height>710</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>310</width> + <height>710</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="windowTitle"> + <string>OUTPUT</string> + </property> + <attribute name="dockWidgetArea"> + <number>2</number> + </attribute> + <widget class="QWidget" name="dockWidgetContents_2"> + <widget class="QLineEdit" name="txtNoBolts"> + <property name="geometry"> + <rect> + <x>200</x> + <y>120</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="t_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>120</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>No. of bolts</string> + </property> + </widget> + <widget class="QLineEdit" name="txtShrCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>30</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch"> + <property name="geometry"> + <rect> + <x>200</x> + <y>240</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage"> + <property name="geometry"> + <rect> + <x>200</x> + <y>270</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>90</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txt_col"> + <property name="geometry"> + <rect> + <x>200</x> + <y>210</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txt_row"> + <property name="geometry"> + <rect> + <x>200</x> + <y>180</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_152"> + <property name="geometry"> + <rect> + <x>0</x> + <y>270</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="labl123_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>90</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>60</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_153"> + <property name="geometry"> + <rect> + <x>0</x> + <y>300</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>End distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>210</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>No. of columns</string> + </property> + </widget> + <widget class="QLabel" name="label_154"> + <property name="geometry"> + <rect> + <x>0</x> + <y>240</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist"> + <property name="geometry"> + <rect> + <x>200</x> + <y>330</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="lbl_row_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>180</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>No. of rows</string> + </property> + </widget> + <widget class="QLabel" name="label_155"> + <property name="geometry"> + <rect> + <x>0</x> + <y>330</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Edge distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_156"> + <property name="geometry"> + <rect> + <x>0</x> + <y>30</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Shear capacity (kN)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist"> + <property name="geometry"> + <rect> + <x>200</x> + <y>300</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_157"> + <property name="geometry"> + <rect> + <x>-1</x> + <y>0</y> + <width>66</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_158"> + <property name="geometry"> + <rect> + <x>0</x> + <y>60</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_160"> + <property name="geometry"> + <rect> + <x>0</x> + <y>480</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Moment capacity (kNm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>480</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_161"> + <property name="geometry"> + <rect> + <x>-1</x> + <y>360</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt"> + <property name="geometry"> + <rect> + <x>200</x> + <y>450</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_162"> + <property name="geometry"> + <rect> + <x>0</x> + <y>450</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="text"> + <string><html><head/><body><p>Moment demand (kNm)</p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng"> + <property name="geometry"> + <rect> + <x>200</x> + <y>570</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_163"> + <property name="geometry"> + <rect> + <x>0</x> + <y>540</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Shear demand (kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_164"> + <property name="geometry"> + <rect> + <x>3</x> + <y>570</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Weld strength (kN/mm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr"> + <property name="geometry"> + <rect> + <x>200</x> + <y>540</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_166"> + <property name="geometry"> + <rect> + <x>-1</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="btn_SaveMessages"> + <property name="geometry"> + <rect> + <x>50</x> + <y>610</y> + <width>200</width> + <height>30</height> + </rect> + </property> + <property name="text"> + <string>Save messages</string> + </property> + </widget> + <widget class="QPushButton" name="btn_CreateDesign"> + <property name="geometry"> + <rect> + <x>50</x> + <y>650</y> + <width>200</width> + <height>30</height> + </rect> + </property> + <property name="text"> + <string>Create design report</string> + </property> + </widget> + <widget class="QLabel" name="plateHeight"> + <property name="geometry"> + <rect> + <x>0</x> + <y>390</y> + <width>100</width> + <height>22</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Height (mm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtplate_ht"> + <property name="geometry"> + <rect> + <x>200</x> + <y>390</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QLineEdit" name="txtplate_width"> + <property name="geometry"> + <rect> + <x>200</x> + <y>420</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QLabel" name="label_2"> + <property name="geometry"> + <rect> + <x>0</x> + <y>420</y> + <width>100</width> + <height>22</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Width (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_10"> + <property name="geometry"> + <rect> + <x>0</x> + <y>150</y> + <width>200</width> + <height>22</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Bolt group capacity (kN)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtboltgrpcapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>150</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + </widget> + </widget> + <action name="actionInput"> + <property name="icon"> + <iconset> + <normaloff>:/images/input.png</normaloff>:/images/input.png</iconset> + </property> + <property name="text"> + <string>Input</string> + </property> + <property name="toolTip"> + <string>Input browser</string> + </property> + </action> + <action name="actionInputwindow"> + <property name="icon"> + <iconset> + <normaloff>:/images/inputview.png</normaloff>:/images/inputview.png</iconset> + </property> + <property name="text"> + <string>inputwindow</string> + </property> + </action> + <action name="actionNew"> + <property name="text"> + <string>New</string> + </property> + </action> + <action name="actionOpen"> + <property name="text"> + <string>Open</string> + </property> + </action> + <action name="actionSave"> + <property name="text"> + <string>Save design</string> + </property> + </action> + <action name="actionSave_As"> + <property name="text"> + <string>Save As</string> + </property> + </action> + <action name="actionPrint"> + <property name="text"> + <string>Print</string> + </property> + </action> + <action name="actionCut"> + <property name="text"> + <string>Cut</string> + </property> + </action> + <action name="actionCopy"> + <property name="text"> + <string>Copy</string> + </property> + </action> + <action name="actionPaste"> + <property name="text"> + <string>Paste</string> + </property> + </action> + <action name="actionInput_Browser"> + <property name="text"> + <string>Input Browser</string> + </property> + </action> + <action name="actionOutput_Browser"> + <property name="text"> + <string>Output Browser</string> + </property> + </action> + <action name="actionAbout_Osdag"> + <property name="text"> + <string>About Finplate</string> + </property> + </action> + <action name="actionBeam"> + <property name="text"> + <string>Beam</string> + </property> + </action> + <action name="actionColumn"> + <property name="text"> + <string>Column</string> + </property> + </action> + <action name="actionFinplate"> + <property name="text"> + <string>Finplate</string> + </property> + </action> + <action name="actionBolt"> + <property name="text"> + <string>Bolt</string> + </property> + </action> + <action name="action2D_view"> + <property name="text"> + <string>2D view</string> + </property> + </action> + <action name="actionZoom_in"> + <property name="text"> + <string>Zoom in</string> + </property> + </action> + <action name="actionZoom_out"> + <property name="text"> + <string>Zoom out</string> + </property> + </action> + <action name="actionPan"> + <property name="text"> + <string>Pan</string> + </property> + </action> + <action name="actionRotate_3D_model"> + <property name="text"> + <string>Rotate 3D model</string> + </property> + </action> + <action name="actionView_2D_on_XY"> + <property name="text"> + <string>View 2D on XY</string> + </property> + </action> + <action name="actionView_2D_on_YZ"> + <property name="text"> + <string>View 2D on YZ</string> + </property> + </action> + <action name="actionView_2D_on_ZX"> + <property name="text"> + <string>View 2D on ZX</string> + </property> + </action> + <action name="actionModel"> + <property name="text"> + <string>Model</string> + </property> + </action> + <action name="actionEnlarge_font_size"> + <property name="text"> + <string>Enlarge font size</string> + </property> + </action> + <action name="actionReduce_font_size"> + <property name="text"> + <string>Reduce font size</string> + </property> + </action> + <action name="actionSave_3D_model_as"> + <property name="text"> + <string>Save 3D model as</string> + </property> + </action> + <action name="actionSave_current_2D_image_as"> + <property name="text"> + <string>Save 2D image as</string> + </property> + </action> + <action name="actionSave_log_messages"> + <property name="text"> + <string>Save log messages</string> + </property> + </action> + <action name="actionCreate_design_report"> + <property name="text"> + <string>Create design report</string> + </property> + </action> + <action name="actionQuit_fin_plate_design"> + <property name="text"> + <string>Quit fin plate design</string> + </property> + </action> + </widget> + <resources> + <include location="ResourceFiles/icons.qrc"/> + </resources> + <connections/> +</ui> diff --git a/Connections/Shear/Finplate/finPlateCalc.py b/Connections/Shear/Finplate/finPlateCalc.py new file mode 100644 index 0000000..7a8acc9 --- /dev/null +++ b/Connections/Shear/Finplate/finPlateCalc.py @@ -0,0 +1,240 @@ +''' +Created on 07-Aug-2014 + +@author: subhrajit +''' + +import math +from model import * +from PyQt4.Qt import QString +import logging +flag = 1 +logger = None + +def module_setup(): + + global logger + logger = logging.getLogger("osdag.finPlateCalc") + +module_setup() + +def finConn(uiObj): + global flag + global logger + '''(Dictionary) --> Dictionary + ''' + + beam_sec = uiObj['Member']['beamSection'] + column_sec = uiObj['Member']['columSection'] + connectivity = uiObj['Member']['connectivity'] + f_u = uiObj['Member']['fu(MPa)'] + f_y = uiObj['Member']['fy(MPa)'] + + F = uiObj['Load']['shearForce(kN)'] + + bolt_dia = uiObj['Bolt']['diameter(mm)'] + bolt_type = uiObj["Bolt"]["type"] + bolt_grade = uiObj['Bolt']['grade'] + + plate_thk = uiObj['Plate']['thickness(mm)'] + plate_width = uiObj['Plate']['width(mm)'] + plate_len = uiObj['Plate']['height(mm)'] + + weld_thk = uiObj["Weld"]['size(mm)'] + FOS_u = 1.25 + FOS_n = 1.1 + k_b = 0.5 + dictbeamdata = get_beamdata(beam_sec) + print dictbeamdata + t_wb = float(dictbeamdata[QString("tw")]) + d_web_b = float(dictbeamdata[QString("D")]) + mu_f = 0.55 + + #------- tw of beamt_wb = 8.9 # Thickness of web of the connected member ISMB 400 + #-----D of beam d_web_b = 380 #column Clear depth of web of the connected member ISMB 400 + no_row_b = 3 + no_col_b = 1 +#------------------------------------------------------------------------------ + #---------------------------------------------------------- # Fin plate data + #------------------------------------------------------------ plate_thk = 10 + #--------------------------------------------------------- plate_width = 100 + #----------------------------------------------------------- plate_len = 300 +#------------------------------------------------------------------------------ + #------------------------------------------------------------------- F = 140 + # your calculations + ''' + Design of bolts + ''' + logger.info("Starting Design Calculations ") + # Shearing capacity of bolt + V_dsb = (0.78*math.pi*bolt_dia**2/4 * math.floor(float(bolt_grade))*100)/(math.sqrt(3)*1000*FOS_u) + V_dsb = round(V_dsb,3) + + + # Bearing capacity of bolt + V_dpb = 2.5*k_b*bolt_dia*t_wb*f_u/(FOS_u*1000) + V_dpb = round(V_dpb,3) + if V_dsb > V_dpb: + V_db = V_dpb + else: + V_db = V_dsb + + #number of bolts + no_b = math.ceil(F/V_db) + if no_b <= 2: + no_b = 3 + + # Hole diameter + if bolt_dia == 12 or bolt_dia == 14: + dia_h = bolt_dia + 1 + elif bolt_dia == 16 or bolt_dia == 18 or bolt_dia == 20 or bolt_dia == 22 or bolt_dia == 24: + dia_h = bolt_dia + 2 + else: + dia_h = bolt_dia + 3 + + # End and edge distance + d_edge = 2 * dia_h + d_end = 2 * dia_h + if d_edge < 50 or d_end < 50: + d_edge = 50 + d_end = 50 + else: + d_edge = math.ceil(d_edge) + d_end = math.ceil(d_end) + + # Web side plate length and width input + if plate_len == 0: + plate_len = d_web_b - 60 + elif plate_len > d_web_b - 60: + logger.error("The length of the plate is more than the available depth of %2.2f mm " % (plate_len)) + print('Re-enter Length') + plate_width_min = 2*d_end + if plate_width == 0: + plate_width_min = 2*d_end + if plate_width < plate_width_min: + logger.error(" Plate width is less than the minimum width required of %2.2f mm " % (plate_width_min)) + #print('Re-enter Width') + #....................................................................... + + plate_len_b = plate_len - 2*d_edge # Length available for bolt group + pitch_min = 1.5*bolt_dia + pitch = plate_len_b/(no_b-1) + pitch = round(pitch,3) + if no_col_b == 1: + gauge = 0 + else: + gauge = 50 + + # Deciding on arrangement of bolts + no_b_oneline = (plate_len_b//pitch_min) + 1 + + + + if pitch < pitch_min: + logger.warning("Pitch distance is less than the minimum required") + #print('Pitch distance is insufficient') + + + + + #....................................................................... + ''' + Web side plate design + ''' + + #if plate_len > d_web_b: + #print('Reselect the length of plate less than depth of the connected web') + + thk_min = round((5*F*1000)/(f_y*plate_len),3) + + if thk_min > plate_thk: + logger.error("The selected thickness of finplate is less than the minimun required") + flag = 0 + #print('Thickness of fin plate is insufficient') + + #d_clear = 20 + x = int(no_b//2) + M_ext = 0 + for i in range(1,x+1): + if no_b%2 == 1: + M_ext += 2*(i*(pitch**2)/pitch)*V_dsb + elif no_b%2 == 0: + M_ext = i*((pitch/2)**2)/(pitch/2)*V_dsb + M_ext = round(M_ext/1000,3) + #print(M_ext) + + M_cap = 1.2*(f_y/FOS_n)*(plate_thk*plate_len**2)/(6*1000) + M_cap = round(M_cap/(1000),3) + #print(M_cap) + + if M_cap < M_ext: + + logger.error("The flexural moment capacity of the finplate is less than the external moment") + flag = 0 + #print('The plate design is OK') + #flag = False + + ''' + Weld Design + ''' + # Resultant shear on weld + l_eff_w = plate_len - 2*weld_thk + #print(l_eff_w) + H_sh = (M_ext*6000)/(2*(l_eff_w**2)) + #print(H_sh) + V_sh = F/float(2*l_eff_w) + #print(V_sh) + R_sh = math.sqrt(H_sh**2 + V_sh**2) + R_sh = round(R_sh,3) + #print(R_sh) + + t_w_ductility = 0.6 * plate_thk / 0.7 + #print(t_w_ductility) + + if weld_thk < t_w_ductility: + thk_weld = int(t_w_ductility) + else: + thk_weld = weld_thk + + #print(weld_thk) + + # Weld strength + f_wd = f_u/float(math.sqrt(3)*FOS_u) + #print(f_wd) + R_nw = f_wd*0.7*weld_thk/1000 + R_nw = round(R_nw,3) + # End of calculation + + outputObj = {} + outputObj['Bolt'] ={} + outputObj['Bolt']['shearcapacity'] = V_dsb + outputObj['Bolt']['bearingcapacity'] = V_dpb + outputObj['Bolt']['boltcapacity'] = V_db + outputObj['Bolt']['numofbolts'] = no_b + outputObj['Bolt']['boltgrpcapacity'] = 0.0 + outputObj['Bolt']['numofrow'] = no_row_b + outputObj['Bolt']['numofcol'] = no_col_b + outputObj['Bolt']['pitch'] = pitch + + outputObj['Bolt']['enddist'] = d_end + + outputObj['Bolt']['edge'] = d_edge + outputObj['Bolt']['gauge'] = gauge + + outputObj['Weld'] = {} + outputObj['Weld']['thickness'] = thk_weld + outputObj['Weld']['resultantshear'] = R_sh + outputObj['Weld']['weldstrength'] = R_nw + + outputObj['Plate'] = {} + outputObj['Plate']['height'] = 0 + outputObj['Plate']['width'] = 0 + outputObj['Plate']['externalmoment'] = M_ext + outputObj['Plate']['momentcapacity'] = M_cap + + if flag != 0: + logger.info("Design is safe") + else: + logger.error("Design is not safe") + return outputObj + diff --git a/Connections/Shear/Finplate/finPlateMain.py b/Connections/Shear/Finplate/finPlateMain.py new file mode 100644 index 0000000..ecb7cd1 --- /dev/null +++ b/Connections/Shear/Finplate/finPlateMain.py @@ -0,0 +1,956 @@ +''' +Created on 07-May-2015 + +@author: deepa +''' +from PyQt4.QtCore import QString +from PyQt4.QtGui import QMessageBox +''' +Created on 21-Aug-2014 + +@author: deepa +''' +import sys +from OCC import VERSION +#from PyQt4 import QtGui,QtCore +from ui_finPlate import Ui_MainWindow +from model import * +#from finPlateCalc import finConn +from finplate_calc1 import finConn +import yaml +import pickle +import logging +#from exampleSimpleGUI import init_display +from OCC.BRepAlgoAPI import BRepAlgoAPI_Fuse +from OCC._Quantity import Quantity_NOC_RED,Quantity_NOC_BLUE1,Quantity_NOC_SADDLEBROWN +from ISection import ISection +import numpy +from OCC.Graphic3d import Graphic3d_NOT_2D_ALUMINUM +from weld import Weld +from plate import Plate +from bolt import Bolt +from nut import Nut +import os.path +from utilities import osdagDisplayShape +from OCC.Display.pyqt4Display import qtViewer3d +from colWebBeamWebConnectivity import ColWebBeamWeb +from colFlangeBeamWebConnectivity import ColFlangeBeamWeb +from OCC import IGESControl + +from filletweld import FilletWeld + + +class MainController(QtGui.QMainWindow): + + def __init__(self): + QtGui.QMainWindow.__init__(self) + self.ui = Ui_MainWindow() + self.ui.setupUi(self) + self.ui.inputDock.setFixedSize(310,710) + + self.gradeType ={'Please Select Type':'', + 'HSFG': [8.8,10.8], + 'Black Bolt':[3.6,4.6,4.8,5.6,5.8,6.8,9.8,12.9]} + self.ui.comboType.addItems(self.gradeType.keys()) + self.ui.comboType.currentIndexChanged[str].connect(self.combotype_currentindexchanged) + self.ui.comboType.setCurrentIndex(0) + + self.ui.comboConnLoc.currentIndexChanged[str].connect(self.setimage_connection) + + + self.ui.btn_Reset.clicked.connect(self.resetbtn_clicked) + + self.ui.btn_Design.clicked.connect(self.design_btnclicked) + + self.ui.btnInput.clicked.connect(lambda: self.dockbtn_clicked(self.ui.inputDock)) + self.ui.btnOutput.clicked.connect(lambda: self.dockbtn_clicked(self.ui.outputDock)) + self.ui.btn_front.clicked.connect(self.call_Frontview) + self.ui.btn_top.clicked.connect(self.call_Topview) + self.ui.btn_side.clicked.connect(self.call_Sideview) + + self.ui.btn3D.clicked.connect(self.call_3DModel) + self.ui.chkBxBeam.clicked.connect(self.call_3DBeam) + self.ui.chkBxCol.clicked.connect(self.call_3DColumn) + self.ui.chkBxFinplate.clicked.connect(self.call_3DFinplate) + + validator = QtGui.QIntValidator() + self.ui.txtFu.setValidator(validator) + self.ui.txtFy.setValidator(validator) + + dbl_validator = QtGui.QDoubleValidator() + self.ui.txtPlateLen.setValidator(dbl_validator) + self.ui.txtPlateLen.setMaxLength(7) + self.ui.txtPlateWidth.setValidator(dbl_validator) + self.ui.txtPlateWidth.setMaxLength(7) + self.ui.txtShear.setValidator(dbl_validator) + self.ui.txtShear.setMaxLength(7) + + minfuVal = 290 + maxfuVal = 590 + self.ui.txtFu.editingFinished.connect(lambda: self.check_range(self.ui.txtFu,self.ui.lbl_fu, minfuVal, maxfuVal)) + + minfyVal = 165 + maxfyVal = 450 + self.ui.txtFy.editingFinished.connect(lambda: self.check_range(self.ui.txtFy,self.ui.lbl_fy, minfyVal, maxfyVal)) + + self.ui.combo_Beam.addItems(get_beamcombolist()) + self.ui.comboColSec.addItems(get_columncombolist()) + self.ui.menuView.addAction(self.ui.inputDock.toggleViewAction()) + self.ui.menuView.addAction(self.ui.outputDock.toggleViewAction()) + self.ui.btn_CreateDesign.clicked.connect(self.save_design) + #self.ui.btn_Saveoutput.clicked.connect(self.save_design) + self.ui.btn_SaveMessages.clicked.connect(self.save_log) + #self.ui.btn_Savelog.clicked.connect(self.save_log) + + + # Saving and Restoring the finPlate window state. + self.retrieve_prevstate() + + # Initialising the qtviewer + self.display,_ = self.init_display(backend_str="pyqt4") + + self.ui.btnSvgSave.clicked.connect(self.save3DtoIGES) + #self.ui.btnSvgSave.clicked.connect(lambda:self.saveTopng(self.display)) + + + def saveTopng(self,display): + display.ExportToImage('/home/Pictures/cad.png') + + def retrieve_prevstate(self): + uiObj = self.get_prevstate() + if(uiObj != None): + + self.ui.combo_Beam.setCurrentIndex(self.ui.combo_Beam.findText(uiObj['Member']['beamSection'])) + self.ui.comboColSec.setCurrentIndex(self.ui.comboColSec.findText(uiObj['Member']['columSection'])) + + self.ui.txtFu.setText(str(uiObj['Member']['fu(MPa)'])) + self.ui.txtFy.setText(str(uiObj['Member']['fy(MPa)'])) + + self.ui.comboConnLoc.setCurrentIndex(self.ui.comboConnLoc.findText(str(uiObj['Member']['connectivity']))) + + self.ui.txtShear.setText(str(uiObj['Load']['shearForce(kN)'])) + + self.ui.comboDaimeter.setCurrentIndex(self.ui.comboDaimeter.findText(str(uiObj['Bolt']['diameter(mm)']))) + comboTypeIndex = self.ui.comboType.findText(str(uiObj['Bolt']['type'])) + self.ui.comboType.setCurrentIndex(comboTypeIndex) + self.combotype_currentindexchanged(str(uiObj['Bolt']['type'])) + + prevValue = str(uiObj['Bolt']['grade']) + + comboGradeIndex = self.ui.comboGrade.findText(prevValue) + + self.ui.comboGrade.setCurrentIndex(comboGradeIndex) + + #self.ui.comboDaimeter.currentText(str(uiObj['Bolt']['diameter(mm)'])) + #self.ui.comboType.currentText(str(uiObj['Bolt']['diameter(mm)'])) + #self.ui.comboGrade.currentText(str(uiObj['Bolt']['grade'])) + + self.ui.comboPlateThick_2.setCurrentIndex(self.ui.comboPlateThick_2.findText(str(uiObj['Plate']['thickness(mm)']))) + #self.ui.comboPlateThick_2.currentText(str(uiObj['Plate']['thickness(mm)'])) + self.ui.txtPlateLen.setText(str(uiObj['Plate']['length(mm)'])) + self.ui.txtPlateWidth.setText(str(uiObj['Plate']['width(mm)'])) + + self.ui.comboWldSize.setCurrentIndex(self.ui.comboWldSize.findText(str(uiObj['Weld']['size(mm)']))) + #self.ui.comboWldSize.currentText(str(uiObj['Weld']['size(mm)'])) + #else: + # self.btnreset_clicked() + + def setimage_connection(self): + ''' + Setting image to connctivity. + ''' + self.ui.lbl_connectivity.show() + loc = self.ui.comboConnLoc.currentText() + if loc == "Column flange-Beam web": + + pixmap = QtGui.QPixmap(":/newPrefix/images/beam2.jpg") + pixmap.scaledToHeight(50) + pixmap.scaledToWidth(60) + self.ui.lbl_connectivity.setPixmap(pixmap) + #self.ui.lbl_connectivity.show() + elif(loc == "Column web-Beam web"): + picmap = QtGui.QPixmap(":/newPrefix/images/beam.jpg") + picmap.scaledToHeight(50) + picmap.scaledToWidth(60) + self.ui.lbl_connectivity.setPixmap(picmap) + else: + self.ui.lbl_connectivity.hide() + + + def getuser_inputs(self): + '''(nothing) -> Dictionary + + Returns the dictionary object with the user input fields for designing fin plate connection + + ''' + uiObj = {} + uiObj["Bolt"] = {} + uiObj["Bolt"]["diameter(mm)"] = self.ui.comboDaimeter.currentText().toInt()[0] + uiObj["Bolt"]["grade"] = float(self.ui.comboGrade.currentText()) + uiObj["Bolt"]["type"] = str(self.ui.comboType.currentText()) + + + uiObj["Weld"] = {} + uiObj["Weld"]['size(mm)'] = self.ui.comboWldSize.currentText().toInt()[0] + + uiObj['Member'] = {} + uiObj['Member']['beamSection'] = str(self.ui.combo_Beam.currentText()) + uiObj['Member']['columSection'] = str(self.ui.comboColSec.currentText()) + uiObj['Member']['connectivity'] = str(self.ui.comboConnLoc.currentText()) + uiObj['Member']['fu(MPa)'] = self.ui.txtFu.text().toInt()[0] + uiObj['Member']['fy(MPa)'] = self.ui.txtFy.text().toInt()[0] + + uiObj['Plate'] = {} + uiObj['Plate']['thickness(mm)'] = self.ui.comboPlateThick_2.currentText().toInt()[0] + uiObj['Plate']['height(mm)'] = self.ui.txtPlateLen.text().toInt()[0] # changes the label length to height + uiObj['Plate']['width(mm)'] = self.ui.txtPlateWidth.text().toInt()[0] + + uiObj['Load'] = {} + uiObj['Load']['shearForce(kN)'] = self.ui.txtShear.text().toInt()[0] + + + return uiObj + + def save_inputs(self,uiObj): + + '''(Dictionary)--> None + + ''' + inputFile = QtCore.QFile('saveINPUT.txt') + if not inputFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): + QtGui.QMessageBox.warning(self, "Application", + "Cannot write file %s:\n%s." % (inputFile, file.errorString())) + #yaml.dump(uiObj, inputFile,allow_unicode=True, default_flow_style = False) + pickle.dump(uiObj, inputFile) + + + def get_prevstate(self): + ''' + ''' + fileName = 'saveINPUT.txt' + + if os.path.isfile(fileName): + fileObject = open(fileName,'r') + uiObj = pickle.load(fileObject) + return uiObj + else: + return None + + + def outputdict(self): + + ''' Returns the output of design in dictionary object. + ''' + outObj = {} + outObj['Plate'] ={} + #outObj['Plate']["Thickness(mm)"] = float(self.ui.txtPlateThick.text()) + outObj['Plate']["External Moment(kNm)"] = float(self.ui.txtExtMomnt.text()) + outObj['Plate']["Moment Capacity(kNm)"] = float(self.ui.txtMomntCapacity.text()) + + outObj['Weld'] ={} + #outObj['Weld']["Weld Thickness(mm)"] = float(self.ui.txtWeldThick.text()) + outObj['Weld']["Resultant Shear(kN/mm)"] = float(self.ui.txtResltShr.text()) + outObj['Weld']["Weld Strength(kN/mm)"] = float(self.ui.txtWeldStrng.text()) + + outObj['Bolt'] = {} + outObj['Bolt']["Shear Capacity(kN)"] = float(self.ui.txtShrCapacity.text()) + outObj['Bolt']["Bearing Capacity(kN)"] = float(self.ui.txtbearCapacity.text()) + outObj['Bolt']["Capacity Of Bolt(kN)"] = float(self.ui.txtBoltCapacity.text()) + outObj['Bolt']["No Of Bolts"] = float(self.ui.txtNoBolts.text()) + outObj['Bolt']["No.Of Row"] = int(self.ui.txt_row.text()) + outObj['Bolt']["No.Of Column"] = int(self.ui.txt_col.text()) + outObj['Bolt']["Pitch Distance(mm)"] = float(self.ui.txtPitch.text()) + outObj['Bolt']["Guage Distance(mm)"] = float(self.ui.txtGuage.text()) + outObj['Bolt']["End Distance(mm)"]= float(self.ui.txtEndDist.text()) + outObj['Bolt']["Edge Distance(mm)"]= float(self.ui.txtEdgeDist.text()) + + return outObj + + + def save_design(self): + self.outdict = self.outputdict() + self.inputdict = self.getuser_inputs() + self.save_yaml(self.outdict,self.inputdict) + + #self.save(self.outdict,self.inputdict) + + def save_log(self): + + fileName,pat =QtGui.QFileDialog.getSaveFileNameAndFilter(self,"Save File As","/home/deepa/SaveMessages","Text files (*.txt)") + return self.save_file(fileName+".txt") + + def save_file(self, fileName): + '''(file open for writing)-> boolean + ''' + fname = QtCore.QFile(fileName) + if not fname.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): + QtGui.QMessageBox.warning(self, "Application", + "Cannot write file %s:\n%s." % (fileName, fname.errorString())) + return False + + outf = QtCore.QTextStream(fname) + QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) + outf << self.ui.textEdit.toPlainText() + QtGui.QApplication.restoreOverrideCursor() + + #self.setCurrentFile(fileName); + QtGui.QMessageBox.about(self,'Information',"File saved") + return True + + + def save_yaml(self,outObj,uiObj): + '''(dictiionary,dictionary) -> NoneType + Saving input and output to file in following format. + Bolt: + diameter: 6 + grade: 8.800000190734863 + type: HSFG + Load: + shearForce: 100 + + ''' + newDict = {"INPUT": uiObj, "OUTPUT": outObj} + fileName = QtGui.QFileDialog.getSaveFileName(self,"Save File As","/home/deepa/SaveDesign","Text File (*.txt)") + f = open(fileName,'w') + yaml.dump(newDict,f,allow_unicode=True, default_flow_style=False) + return self.save_file(fileName+".txt") + + + def resetbtn_clicked(self): + '''(NoneType) -> NoneType + + Resets all fields in input as well as output window + + ''' + # user Inputs + self.ui.combo_Beam.setCurrentIndex((0)) + self.ui.comboColSec.setCurrentIndex((0)) + self.ui.comboConnLoc.setCurrentIndex((0)) + self.ui.txtFu.clear() + self.ui.txtFy.clear() + + self.ui.txtShear.clear() + + self.ui.comboDaimeter.setCurrentIndex(0) + self.ui.comboType.setCurrentIndex((0)) + self.ui.comboGrade.setCurrentIndex((0)) + + self.ui.comboPlateThick_2.setCurrentIndex((0)) + self.ui.txtPlateLen.clear() + self.ui.txtPlateWidth.clear() + + self.ui.comboWldSize.setCurrentIndex((0)) + + #----Output + self.ui.txtShrCapacity.clear() + self.ui.txtbearCapacity.clear() + self.ui.txtBoltCapacity.clear() + self.ui.txtNoBolts.clear() + self.ui.txtboltgrpcapacity.clear() + self.ui.txt_row.clear() + self.ui.txt_col.clear() + self.ui.txtPitch.clear() + self.ui.txtGuage.clear() + self.ui.txtEndDist.clear() + self.ui.txtEdgeDist.clear() + + #self.ui.txtPlateThick.clear() + self.ui.txtplate_ht.clear() + self.ui.txtplate_width.clear() + self.ui.txtExtMomnt.clear() + self.ui.txtMomntCapacity.clear() + + #self.ui.txtWeldThick.clear() + self.ui.txtResltShr.clear() + self.ui.txtWeldStrng.clear() + self.ui.textEdit.clear() + + def dockbtn_clicked(self,widget): + + '''(QWidget) -> NoneType + + This method dock and undock widget(QdockWidget) + ''' + + flag = widget.isHidden() + if(flag): + + widget.show() + else: + widget.hide() + + def combotype_currentindexchanged(self,index): + + '''(Number) -> NoneType + ''' + items = self.gradeType[str(index)] + + self.ui.comboGrade.clear() + strItems = [] + for val in items: + strItems.append(str(val)) + + self.ui.comboGrade.addItems(strItems) + + + def check_range(self, widget,lblwidget, minVal, maxVal): + + '''(QlineEdit,QLable,Number,Number)---> NoneType + Validating F_u(ultimate Strength) and F_y (Yeild Strength) textfields + ''' + textStr = widget.text() + val = int(textStr) + if( val < minVal or val > maxVal): + QtGui.QMessageBox.about(self,'Error','Please Enter a value between %s-%s' %(minVal, maxVal)) + widget.clear() + widget.setFocus() + palette = QtGui.QPalette() + palette.setColor(QtGui.QPalette.Foreground,QtCore.Qt.red) + lblwidget.setPalette(palette) + else: + palette = QtGui.QPalette() + lblwidget.setPalette(palette) + + def display_output(self, resultObj): + + '''(dictionary) --> NoneType + + Setting design result values to the respective textboxes in the output window + + ''' + # resultObj['Bolt'] + shear_capacity = resultObj['Bolt']['shearcapacity'] + self.ui.txtShrCapacity.setText(str(shear_capacity)) + + bearing_capacity = resultObj['Bolt']['bearingcapacity'] + self.ui.txtbearCapacity.setText(str(bearing_capacity)) + + bolt_capacity = resultObj['Bolt']['boltcapacity'] + self.ui.txtBoltCapacity.setText(str(bolt_capacity)) + + no_ofbolts = resultObj['Bolt']['numofbolts'] + self.ui.txtNoBolts.setText(str(no_ofbolts)) + #newly added field + boltGrp_capacity = resultObj['Bolt']['boltgrpcapacity'] + self.ui.txtboltgrpcapacity.setText(str(boltGrp_capacity)) + + no_ofrows = resultObj['Bolt']['numofrow'] + self.ui.txt_row.setText(str(no_ofrows)) + + no_ofcol = resultObj['Bolt']['numofcol'] + self.ui.txt_col.setText(str(no_ofcol)) + + pitch_dist = resultObj['Bolt']['pitch'] + self.ui.txtPitch.setText(str(pitch_dist)) + + gauge_dist = resultObj['Bolt']['gauge'] + self.ui.txtGuage.setText(str(gauge_dist)) + + end_dist = resultObj['Bolt']['enddist'] + self.ui.txtEndDist.setText(str(end_dist)) + + edge_dist = resultObj['Bolt']['edge'] + self.ui.txtEdgeDist.setText(str(edge_dist)) + + # resultObj['Weld'] + # weld_thickness = resultObj['Weld']['thickness'] + # self.ui.txtWeldThick.setText(str(weld_thickness)) + + resultant_shear = resultObj['Weld']['resultantshear'] + self.ui.txtResltShr.setText(str(resultant_shear)) + + weld_strength = resultObj['Weld']['weldstrength'] + self.ui.txtWeldStrng.setText(str(weld_strength)) + + + # Newly included fields + plate_ht = resultObj['Plate']['height'] + self.ui.txtplate_ht.setText(str(plate_ht)) + + plate_width = resultObj['Plate']['width'] + self.ui.txtplate_width.setText(str(plate_width)) + + moment_demand = resultObj['Plate']['externalmoment'] + self.ui.txtExtMomnt.setText(str(moment_demand)) + + moment_capacity = resultObj['Plate']['momentcapacity'] + self.ui.txtMomntCapacity.setText(str(moment_capacity)) + + + def displaylog_totextedit(self): + ''' + This method displaying Design messages(log messages)to textedit widget. + ''' + + afile = QtCore.QFile('fin.log') + + if not afile.open(QtCore.QIODevice.ReadOnly):#ReadOnly + QtGui.QMessageBox.information(None, 'info', afile.errorString()) + + stream = QtCore.QTextStream(afile) + #self.ui.textEdit.setFocus() + self.ui.textEdit.clear() + self.ui.textEdit.setHtml(stream.readAll()) + + afile.close() + + + def get_backend(self): + """ + loads a backend + backends are loaded in order of preference + since python comes with Tk included, but that PySide or PyQt4 + is much preferred + """ + try: + from PySide import QtCore, QtGui + return 'pyside' + except: + pass + try: + from PyQt4 import QtCore, QtGui + return 'pyqt4' + except: + pass + # Check wxPython + try: + import wx + return 'wx' + except: + raise ImportError("No compliant GUI library found. You must have either PySide, PyQt4 or wxPython installed.") + sys.exit(1) + + # QtViewer + def init_display(self,backend_str=None, size=(1024, 768)): + + global display, start_display, app, _, USED_BACKEND + + if not backend_str: + USED_BACKEND = self.get_backend() + elif backend_str in [ 'pyside', 'pyqt4']: + USED_BACKEND = backend_str + else: + raise ValueError("You should pass either 'qt' or 'tkinter' to the init_display function.") + sys.exit(1) + + # Qt based simple GUI + if USED_BACKEND in ['pyqt4', 'pyside']: + if USED_BACKEND == 'pyqt4': + from PyQt4 import QtCore, QtGui, QtOpenGL + from OCC.Display.pyqt4Display import qtViewer3d + elif USED_BACKEND == 'pyside': + from PySide import QtCore, QtGui, QtOpenGL + from OCC.Display.pysideDisplay import qtViewer3d + + self.ui.modelTab = qtViewer3d(self) + self.setWindowTitle("Osdag-%s 3d viewer ('%s' backend)" % (VERSION, USED_BACKEND)) + self.ui.mytabWidget.resize(size[0], size[1]) + self.ui.mytabWidget.addTab(self.ui.modelTab,"") + + #self.ui.mytabWidget.setCentralWidget(self.ui.modelTab) + #self.ui.mytabWidget.centerOnScreen() + + self.ui.modelTab.InitDriver() + display = self.ui.modelTab._display + #display_2d = self.ui.model2dTab._display + + # background gradient + display.set_bg_gradient_color(23,1,32,23,1,32) + #display_2d.set_bg_gradient_color(255,255,255,255,255,255) + # display black trihedron + display.display_trihedron() + display.View.SetProj(1, 1, 1) + def centerOnScreen(self): + '''Centers the window on the screen.''' + resolution = QtGui.QDesktopWidget().screenGeometry() + self.move((resolution.width() / 2) - (self.frameSize().width() / 2), + (resolution.height() / 2) - (self.frameSize().height() / 2)) + def start_display(): + + self.ui.modelTab.raise_() # make the application float to the top + + return display, start_display + + def display3Dmodel(self,cadlist,component): + + self.display,_ = self.init_display(backend_str="pyqt4") + self.display.set_bg_gradient_color(23,1,32,23,1,32) + if component == "Column": + self.display.EraseAll() + osdagDisplayShape(self.display, cadlist[0], update=True) + elif component == "Beam": + display.EraseAll() + osdagDisplayShape(self.display, cadlist[1],material = Graphic3d_NOT_2D_ALUMINUM, update=True) + elif component == "Finplate" : + display.EraseAll() + osdagDisplayShape(self.display,cadlist[2],color = 'red', update = True) + osdagDisplayShape(self.display, cadlist[3], color = 'red', update = True) + osdagDisplayShape(self.display, cadlist[4], color = 'blue', update = True) + self.display.DisplayShape(cadlist[5],color = Quantity_NOC_SADDLEBROWN, update=True) + self.display.DisplayShape(cadlist[6],color = Quantity_NOC_SADDLEBROWN, update = True) + elif component == "Model": + + osdagDisplayShape(self.display, cadlist[0], update=True) + osdagDisplayShape(self.display, cadlist[1],material = Graphic3d_NOT_2D_ALUMINUM, update=True) + osdagDisplayShape(self.display,cadlist[2],color = 'red', update = True) + osdagDisplayShape(self.display,cadlist[3],color = 'red', update = True) + osdagDisplayShape(self.display, cadlist[4], color = 'blue', update = True) + self.display.DisplayShape(cadlist[5],color = Quantity_NOC_SADDLEBROWN, update=True) + self.display.DisplayShape(cadlist[6],color = Quantity_NOC_SADDLEBROWN, update = True) + else: + pass + + start_display() + + + def create3DColWebBeamWeb(self): + ''' + creating 3d cad model with column web beam web + ''' + + column = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) + beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500) + Fweld1 = FilletWeld(L= 300,b = 6, h = 6) + #Fweld1 = Weld(L= 300,W = beam.t, T = 8) + + plate = Plate(L= 300,W =100, T = 10) + boltRadius = 10 + nutRadius = 10 + + colwebconn = ColWebBeamWeb(column,beam,Fweld1,plate,boltRadius,nutRadius) + return colwebconn.create_3dmodel() + + def createColFlangeBeamWeb(self): + ''' + Creating 3d cad model with column flange beam web connection + ''' + column = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) + beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500) + weld = Weld(L= 300,b = 6.0, T = 8) + plate = Plate(L= weld.L,W =100, T = 10) + boltRadius = 10 + nutRadius = 10 + + colflangeconn = ColFlangeBeamWeb(column,beam,weld,plate,boltRadius,nutRadius) + return colflangeconn.create_3dmodel() + + def call_3DModel(self): + + if self.ui.btn3D.isEnabled(): + self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + + if self.ui.comboConnLoc.currentText()== "Column web-Beam web": + memberlist = self.create3DColWebBeamWeb() + else: + self.ui.mytabWidget.setCurrentIndex(0) + memberlist = self.createColFlangeBeamWeb() + + #memberlist = self.create_3dmodel() + #self.ui.btn3D.setStyleSheet("background-color: red") + self.display3Dmodel(memberlist, "Model") + + + def call_3DBeam(self): + ''' + Creating and displaying 3D Beam + ''' + memberlist = self.create3DColWebBeamWeb() + + if self.ui.chkBxBeam.isChecked(): + self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + self.display3Dmodel(memberlist, "Beam") + #self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + + def call_3DColumn(self): + memberlist = self.create3DColWebBeamWeb() + if self.ui.chkBxCol.isChecked(): + self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + self.display3Dmodel(memberlist, "Column") + #self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked + + def call_3DFinplate(self): + memberlist = self.create3DColWebBeamWeb() + if self.ui.chkBxFinplate.isChecked(): + self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked) + self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked) + self.ui.mytabWidget.setCurrentIndex(0) + self.display3Dmodel(memberlist, "Finplate") + #self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked + + def design_btnclicked(self): + + + self.ui.outputDock.setFixedSize(310,710) + + # self.memberlist3D = self.createColFlangeBeamWeb() + # self.mmemberlist2D + # Getting User Inputs. + uiObj = self.getuser_inputs() + print uiObj + + # FinPlate Design Calculations. + resultObj = finConn(uiObj) + + # Displaying Design Calculations To Output Window + self.display_output(resultObj) + + # Displaying Messages related to FinPlate Design. + self.displaylog_totextedit() + + + def close_event(self, event): + ''' + Closing finPlate window. + ''' + uiInput = self.getuser_inputs() + self.save_inputs(uiInput) + reply = QtGui.QMessageBox.question(self, 'Message', + "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) + + if reply == QtGui.QMessageBox.Yes: + event.accept() + else: + event.ignore() + + + def create2Dcad(self): + + + # ISection COLUMN + origin1 = numpy.array([0, 0, 0]) + uDir1 = numpy.array([1.0, 0, 0]) + wDir1 = numpy.array([0.0, 0, 1.0]) + t = 8.9 + weldThick = 8 + iSection1 = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) + iSection1.place(origin1, uDir1, wDir1) + + # ISection BEAM + uDir2 = numpy.array([0, 1.0, 0]) + wDir2 = numpy.array([1.0, 0, 0.0]) + d = t/2.0 + weldThick + origin2 = numpy.array([0, 0, 500]) + (d+7.55) * wDir2 + iSection2 = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 400) + iSection2.place(origin2, uDir2, wDir2) + + # WELD + weld = Weld(L= 300,W =iSection2.t, T = 8) + #plateThickness = 10 + uDir3 = numpy.array([0, 1.0, 0]) + wDir3 = numpy.array([1.0, 0, 0.0]) + origin3 = (iSection1.secOrigin + + iSection1.t/2.0 * iSection1.uDir + + iSection1.length/2.0 * iSection1.wDir + + iSection2.t/2.0 * (-iSection2.uDir)+ + weld.W/2.0 * (-iSection2.uDir)) + #origin3 = numpy.array([0, 0, 500]) + t/2.0 *wDir3 + plateThickness/2.0 * (-iSection2.uDir) + weld.place(origin3, uDir3, wDir3) + + # PLATE + plate = Plate(L= weld.L,W =100, T = 10) + uDir4 = numpy.array([0, 1.0, 0]) + wDir4 = numpy.array([1.0, 0, 0.0]) + origin4 = weld.secOrigin + weld.T * weld.wDir + plate.place(origin4, uDir4, wDir4) + + # BOLT BODY + bolt_T = 6.0 + origin51 = (plate.secOrigin + (- + plate.T/2.0 - bolt_T) * plate.uDir + + plate.W/2.0 * plate.wDir) + + uDir5 = plate.wDir + wDir5 = plate.uDir + ## Bolt1 + bolt1 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) + bolt1.place(origin51, uDir5, wDir5) + + ## Bolt2 + bolt2 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) + origin52 = origin51 + 50 *plate.vDir + bolt2.place(origin52, uDir5, wDir5) + + ## Bolt3 + bolt3 = Bolt(R = 10.0,T = bolt_T, H = 30.0, r = 4.0 ) + origin53 = origin51 - 50*plate.vDir + bolt3.place(origin53, uDir5, wDir5) + bolt_list =[bolt1,bolt2,bolt3] + + # NUTBODY + ## Nut1 + nut1 = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + uDir = uDir5 + wDir = wDir5 + nut_Origin1 = origin51 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) + nut1.place(nut_Origin1, uDir, wDir) + + ## Nut2 + nut2 = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + nut_Origin2 = origin52 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) + nut2.place(nut_Origin2, uDir, wDir) + + ## Nut3 + nut3 =Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3) + nut_Origin3 = origin53 + (bolt1.T/2 * plate.uDir)+(plate.T *plate.uDir)+ (iSection2.T/2 * plate.uDir) + nut3.place(nut_Origin3, uDir5, wDir5) + nut_list = [nut1,nut2,nut3] + + # Call for createModel + iSectionModel1 = iSection1.createModel() + iSectionModel2 = iSection2.createModel() + weldModel = weld.createModel() + plateModel = plate.createModel() + boltModels = [] + for bolt in bolt_list: + + boltModels.append(bolt.createModel()) + + #color = Quantity_NOC_SADDLEBROWN, + nutModels = [] + for nut in nut_list: + nutModels.append(nut.createModel()) + + isection = BRepAlgoAPI_Fuse(iSectionModel1,iSectionModel2).Shape() + weld_isection = BRepAlgoAPI_Fuse(isection,weldModel).Shape() + plate_weld = BRepAlgoAPI_Fuse(weld_isection,plateModel).Shape() + + plate_weld_bolt = plate_weld + for bolt in boltModels: + plate_weld_bolt = BRepAlgoAPI_Fuse(plate_weld_bolt, bolt).Shape() + + + final_model = plate_weld_bolt + for nt in nutModels: + final_model = BRepAlgoAPI_Fuse(final_model,nt).Shape() + return final_model + + # Export to IGES + def save3DtoIGES(self): + + shape = self.create2Dcad() + i = IGESControl.IGESControl_Controller() + i.Init() + iges_writer = IGESControl.IGESControl_Writer() + iges_writer.AddShape(shape) + iges_writer.Write('/home/deepa/Pictures/osdag.iges') + + def display2DModel(self, final_model, viewName): + + #display, start_display, _, _ = self.simpleGUI() + + self.display.set_bg_gradient_color(255, 255, 255, 255, 255, 255) + # Get Context + ais_context = self.display.GetContext().GetObject() + + # Get Prs3d_drawer from previous context + drawer_handle = ais_context.DefaultDrawer() + drawer = drawer_handle.GetObject() + drawer.EnableDrawHiddenLine() + + hla = drawer.HiddenLineAspect().GetObject() + hla.SetWidth(2) + hla.SetColor(Quantity_NOC_RED) + + # increase line width in the current viewer + # This is only viewed in the HLR mode (hit 'e' key for instance) + + line_aspect = drawer.SeenLineAspect().GetObject() + line_aspect.SetWidth(2.8) + line_aspect.SetColor(Quantity_NOC_BLUE1) + self.display.EraseAll() + self.display.DisplayShape(final_model, update = True) + + self.display.SetModeHLR() + self.display.FitAll() + + if (viewName == "Front"): + self.display.View_Front() + elif (viewName == "Top"): + self.display.View_Top() + elif (viewName == "Right"): + self.display.View_Right() + else: + pass + + start_display() + + def call_Frontview(self): + + '''Displays front view of 2Dmodel + ''' + self.ui.mytabWidget.setCurrentIndex(0) + final_model = self.create2Dcad() + self.display2DModel(final_model, "Front") + + def call_Topview(self): + + '''Displays Top view of 2Dmodel + ''' + self.ui.mytabWidget.setCurrentIndex(0) + final_model = self.create2Dcad() + self.display2DModel(final_model, "Top") + + def call_Sideview(self): + + '''Displays Side view of the 2Dmodel' + ''' + self.ui.mytabWidget.setCurrentIndex(0) + final_model = self.create2Dcad() + self.display2DModel(final_model, "Right") + +def set_osdaglogger(): + + logger = logging.getLogger("osdag") + logger.setLevel(logging.DEBUG) + + # create the logging file handler + fh = logging.FileHandler("fin.log", mode="a") + + #,datefmt='%a, %d %b %Y %H:%M:%S' + #formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + + formatter = logging.Formatter(''' + <div class="LOG %(levelname)s"> + <span class="DATE">%(asctime)s</span> + <span class="LEVEL">%(levelname)s</span> + <span class="MSG">%(message)s</span> + </div>''') + formatter.datefmt = '%a, %d %b %Y %H:%M:%S' + fh.setFormatter(formatter) + + # add handler to logger object + logger.addHandler(fh) + + + + +if __name__ == '__main__': + + # linking css to log file to display colour logs. + set_osdaglogger() + rawLogger = logging.getLogger("raw") + rawLogger.setLevel(logging.INFO) + fh = logging.FileHandler("fin.log", mode="w") + formatter = logging.Formatter('''%(message)s''') + fh.setFormatter(formatter) + rawLogger.addHandler(fh) + rawLogger.info('''<link rel="stylesheet" type="text/css" href="log.css"/>''') + + + + app = QtGui.QApplication(sys.argv) + window = MainController() + window.show() + sys.exit(app.exec_()) + + + + + diff --git a/Connections/Shear/Finplate/finPlatetrial.ui b/Connections/Shear/Finplate/finPlatetrial.ui new file mode 100644 index 0000000..f9e529b --- /dev/null +++ b/Connections/Shear/Finplate/finPlatetrial.ui @@ -0,0 +1,3965 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>1335</width> + <height>767</height> + </rect> + </property> + <property name="windowTitle"> + <string>Fin Plate Trial</string> + </property> + <property name="windowIcon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/download1.png</normaloff>:/newPrefix/images/download1.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>20</width> + <height>2</height> + </size> + </property> + <widget class="QWidget" name="centralwidget"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QFrame" name="frame"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>28</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>28</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QToolButton" name="btnInput"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="text"> + <string>input</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/input.png</normaloff>:/newPrefix/images/input.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnOutput"> + <property name="geometry"> + <rect> + <x>30</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/output.png</normaloff>:/newPrefix/images/output.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnZmOut"> + <property name="geometry"> + <rect> + <x>80</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="toolTip"> + <string>Zoom In</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/zoom_in_01.png</normaloff>:/newPrefix/images/zoom_in_01.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnZmIn"> + <property name="geometry"> + <rect> + <x>110</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="toolTip"> + <string>Zoom Out</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/zoom_out_01.png</normaloff>:/newPrefix/images/zoom_out_01.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnSvgSave"> + <property name="geometry"> + <rect> + <x>200</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="toolTip"> + <string>Save Image</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/save.png</normaloff>:/newPrefix/images/save.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>18</width> + <height>18</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnTotatAcw"> + <property name="geometry"> + <rect> + <x>140</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="toolTip"> + <string>Rotate Left</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/rotate-ccw.png</normaloff>:/newPrefix/images/rotate-ccw.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btnRotatCw"> + <property name="geometry"> + <rect> + <x>170</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="toolTip"> + <string>Rotate Right</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="ResourceFiles/icons.qrc"> + <normaloff>:/newPrefix/images/rotate-cw.png</normaloff>:/newPrefix/images/rotate-cw.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>25</width> + <height>25</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btn3D"> + <property name="geometry"> + <rect> + <x>390</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <family>Droid Serif</family> + <pointsize>11</pointsize> + <weight>75</weight> + <italic>true</italic> + <bold>true</bold> + <underline>false</underline> + <strikeout>false</strikeout> + </font> + </property> + <property name="toolTip"> + <string>3D Model</string> + </property> + <property name="text"> + <string>3D</string> + </property> + <property name="autoRaise"> + <bool>false</bool> + </property> + <property name="arrowType"> + <enum>Qt::NoArrow</enum> + </property> + </widget> + <widget class="QCheckBox" name="chkBxBeam"> + <property name="geometry"> + <rect> + <x>430</x> + <y>0</y> + <width>71</width> + <height>29</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Beam</string> + </property> + </widget> + <widget class="QCheckBox" name="chkBxCol"> + <property name="geometry"> + <rect> + <x>510</x> + <y>0</y> + <width>91</width> + <height>29</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Column</string> + </property> + </widget> + <widget class="QCheckBox" name="chkBxFinplate"> + <property name="geometry"> + <rect> + <x>600</x> + <y>0</y> + <width>92</width> + <height>29</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Finplate</string> + </property> + </widget> + <widget class="QToolButton" name="btn_front"> + <property name="geometry"> + <rect> + <x>270</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="acceptDrops"> + <bool>true</bool> + </property> + <property name="toolTip"> + <string>Front View</string> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>../../../../../Downloads/ZY.png</normaloff>../../../../../Downloads/ZY.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btn_top"> + <property name="geometry"> + <rect> + <x>300</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="toolTip"> + <string>Top View</string> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>../../../../../Downloads/Y-X.png</normaloff>../../../../../Downloads/Y-X.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>23</height> + </size> + </property> + </widget> + <widget class="QToolButton" name="btn_side"> + <property name="geometry"> + <rect> + <x>330</x> + <y>0</y> + <width>28</width> + <height>28</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="toolTip"> + <string>Side View</string> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>../../../../../Downloads/Z-Y.png</normaloff>../../../../../Downloads/Z-Y.png</iconset> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + </widget> + </widget> + </item> + <item> + <widget class="QSplitter" name="splitter"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <widget class="QWidget" name="widget" native="true"> + <property name="styleSheet"> + <string notr="true">QWidget { background-color: rgb(255, 255, 255); margin:1px; border:1px solid rgb(128, 128, 128) }</string> + </property> + </widget> + <widget class="QTextEdit" name="textEdit"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>100</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>650</height> + </size> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="frameShape"> + <enum>QFrame::Panel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + </widget> + </widget> + </item> + </layout> + </widget> + <widget class="QMenuBar" name="menubar"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>1335</width> + <height>30</height> + </rect> + </property> + <widget class="QMenu" name="menuFile"> + <property name="title"> + <string>File</string> + </property> + <addaction name="actionNew"/> + <addaction name="separator"/> + <addaction name="actionOpen"/> + <addaction name="separator"/> + <addaction name="actionSave"/> + <addaction name="actionSave_As"/> + <addaction name="separator"/> + <addaction name="actionPrint"/> + </widget> + <widget class="QMenu" name="menuEdit"> + <property name="title"> + <string>Edit</string> + </property> + <addaction name="actionCut"/> + <addaction name="actionCopy"/> + <addaction name="actionPaste"/> + </widget> + <widget class="QMenu" name="menuView"> + <property name="title"> + <string>View</string> + </property> + <widget class="QMenu" name="menu3D_view"> + <property name="title"> + <string>3D view</string> + </property> + <addaction name="separator"/> + <addaction name="actionBeam"/> + <addaction name="separator"/> + <addaction name="actionColumn"/> + <addaction name="separator"/> + <addaction name="actionFinplate"/> + <addaction name="separator"/> + <addaction name="actionBolt"/> + </widget> + <addaction name="separator"/> + <addaction name="separator"/> + <addaction name="menu3D_view"/> + <addaction name="separator"/> + <addaction name="action2D_view"/> + </widget> + <widget class="QMenu" name="menuHelp"> + <property name="title"> + <string>Help</string> + </property> + <addaction name="actionAbout_Osdag"/> + </widget> + <addaction name="menuFile"/> + <addaction name="menuEdit"/> + <addaction name="menuView"/> + <addaction name="menuHelp"/> + </widget> + <widget class="QDockWidget" name="inputDock"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>1</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>125</width> + <height>710</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>310</width> + <height>710</height> + </size> + </property> + <property name="baseSize"> + <size> + <width>310</width> + <height>710</height> + </size> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="windowTitle"> + <string>INPUT</string> + </property> + <attribute name="dockWidgetArea"> + <number>1</number> + </attribute> + <widget class="QWidget" name="dockWidgetContents"> + <widget class="QLineEdit" name="txtFy"> + <property name="geometry"> + <rect> + <x>150</x> + <y>140</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="placeholderText"> + <string>000.000</string> + </property> + </widget> + <widget class="QLabel" name="label_3"> + <property name="geometry"> + <rect> + <x>6</x> + <y>75</y> + <width>151</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:400;">Column Section *</span></p></body></html></string> + </property> + </widget> + <widget class="QComboBox" name="comboConnLoc"> + <property name="geometry"> + <rect> + <x>150</x> + <y>170</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <item> + <property name="text"> + <string>Select Connectivity</string> + </property> + </item> + <item> + <property name="text"> + <string>Column flange-Beam web</string> + </property> + </item> + <item> + <property name="text"> + <string>Column web-Beam web</string> + </property> + </item> + </widget> + <widget class="QLineEdit" name="txtFu"> + <property name="geometry"> + <rect> + <x>150</x> + <y>110</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="placeholderText"> + <string>000.000</string> + </property> + </widget> + <widget class="QLabel" name="label"> + <property name="geometry"> + <rect> + <x>1</x> + <y>15</y> + <width>150</width> + <height>17</height> + </rect> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="Link"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Member</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_4"> + <property name="geometry"> + <rect> + <x>6</x> + <y>170</y> + <width>120</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Connectivity *</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="lbl_fu"> + <property name="geometry"> + <rect> + <x>6</x> + <y>110</y> + <width>120</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-style:italic;">f</span><span style=" font-style:italic; vertical-align:sub;">u </span>(MPa) * </p></body></html></string> + </property> + </widget> + <widget class="QComboBox" name="comboColSec"> + <property name="geometry"> + <rect> + <x>150</x> + <y>75</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + </widget> + <widget class="QLabel" name="lbl_fy"> + <property name="geometry"> + <rect> + <x>6</x> + <y>135</y> + <width>120</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-style:italic;">f</span><span style=" vertical-align:sub;">y (</span>MPa) *</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_18"> + <property name="geometry"> + <rect> + <x>1</x> + <y>240</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Load</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="lbl_shear"> + <property name="geometry"> + <rect> + <x>6</x> + <y>270</y> + <width>151</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Shear Force (kN) *</string> + </property> + </widget> + <widget class="QLineEdit" name="txtShear"> + <property name="geometry"> + <rect> + <x>150</x> + <y>270</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QLabel" name="label_5"> + <property name="geometry"> + <rect> + <x>1</x> + <y>300</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QComboBox" name="comboType"> + <property name="geometry"> + <rect> + <x>150</x> + <y>360</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="maxVisibleItems"> + <number>10</number> + </property> + </widget> + <widget class="QLabel" name="label_6"> + <property name="geometry"> + <rect> + <x>6</x> + <y>390</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Grade *</string> + </property> + </widget> + <widget class="QComboBox" name="comboGrade"> + <property name="geometry"> + <rect> + <x>150</x> + <y>390</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>6</number> + </property> + </widget> + <widget class="QLabel" name="label_7"> + <property name="geometry"> + <rect> + <x>6</x> + <y>330</y> + <width>131</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Diameter (mm) <span style=" color:#555500;">*</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_8"> + <property name="geometry"> + <rect> + <x>6</x> + <y>360</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Type *</string> + </property> + </widget> + <widget class="QComboBox" name="comboDaimeter"> + <property name="geometry"> + <rect> + <x>150</x> + <y>330</y> + <width>160</width> + <height>27</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + <item> + <property name="text"> + <string>Diameter of Bolt</string> + </property> + </item> + <item> + <property name="text"> + <string>5</string> + </property> + </item> + <item> + <property name="text"> + <string>6</string> + </property> + </item> + <item> + <property name="text"> + <string>8</string> + </property> + </item> + <item> + <property name="text"> + <string>10</string> + </property> + </item> + <item> + <property name="text"> + <string>12</string> + </property> + </item> + <item> + <property name="text"> + <string>16</string> + </property> + </item> + <item> + <property name="text"> + <string>20</string> + </property> + </item> + <item> + <property name="text"> + <string>24</string> + </property> + </item> + <item> + <property name="text"> + <string>30</string> + </property> + </item> + <item> + <property name="text"> + <string>36</string> + </property> + </item> + </widget> + <widget class="QLabel" name="lbl_width_2"> + <property name="geometry"> + <rect> + <x>6</x> + <y>510</y> + <width>111</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Width (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_40"> + <property name="geometry"> + <rect> + <x>1</x> + <y>420</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_41"> + <property name="geometry"> + <rect> + <x>6</x> + <y>450</y> + <width>131</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Thickness (mm) *</p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateLen"> + <property name="geometry"> + <rect> + <x>150</x> + <y>480</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QLabel" name="lbl_len_2"> + <property name="geometry"> + <rect> + <x>6</x> + <y>480</y> + <width>111</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Length (mm)</string> + </property> + </widget> + <widget class="QComboBox" name="comboPlateThick_2"> + <property name="geometry"> + <rect> + <x>150</x> + <y>450</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + <item> + <property name="text"> + <string>Thickness of Plate</string> + </property> + </item> + <item> + <property name="text"> + <string>6</string> + </property> + </item> + <item> + <property name="text"> + <string>8</string> + </property> + </item> + <item> + <property name="text"> + <string>10</string> + </property> + </item> + <item> + <property name="text"> + <string>12</string> + </property> + </item> + </widget> + <widget class="QLabel" name="label_42"> + <property name="geometry"> + <rect> + <x>1</x> + <y>540</y> + <width>66</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_43"> + <property name="geometry"> + <rect> + <x>6</x> + <y>570</y> + <width>131</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Thickness (mm) *</p></body></html></string> + </property> + </widget> + <widget class="QFrame" name="outputFrame_2"> + <property name="geometry"> + <rect> + <x>988</x> + <y>620</y> + <width>320</width> + <height>690</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>320</width> + <height>690</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QLineEdit" name="txtShrCapacity_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>50</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>80</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>110</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtNoBolts_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>320</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldThick_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>410</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>440</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateThick_2"> + <property name="geometry"> + <rect> + <x>181</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_44"> + <property name="geometry"> + <rect> + <x>4</x> + <y>30</y> + <width>66</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_45"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Shear Capacity (kN)</string> + </property> + </widget> + <widget class="QLabel" name="label_46"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing Capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="labl123_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of Bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="t_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Bolts</string> + </property> + </widget> + <widget class="QLabel" name="label_47"> + <property name="geometry"> + <rect> + <x>10</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_48"> + <property name="geometry"> + <rect> + <x>10</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>End Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_49"> + <property name="geometry"> + <rect> + <x>10</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_50"> + <property name="geometry"> + <rect> + <x>10</x> + <y>440</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Weld Strength (kN/mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_51"> + <property name="geometry"> + <rect> + <x>10</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_52"> + <property name="geometry"> + <rect> + <x>4</x> + <y>350</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_53"> + <property name="geometry"> + <rect> + <x>10</x> + <y>320</y> + <width>140</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Edge Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_54"> + <property name="geometry"> + <rect> + <x>10</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_55"> + <property name="geometry"> + <rect> + <x>10</x> + <y>410</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Resultant Shear (kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_56"> + <property name="geometry"> + <rect> + <x>10</x> + <y>540</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>External Moment (kNm)</string> + </property> + </widget> + <widget class="QLabel" name="label_57"> + <property name="geometry"> + <rect> + <x>4</x> + <y>480</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt_2"> + <property name="geometry"> + <rect> + <x>180</x> + <y>540</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity_2"> + <property name="geometry"> + <rect> + <x>180</x> + <y>570</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_58"> + <property name="geometry"> + <rect> + <x>10</x> + <y>570</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Moment Capacity (KNm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Column</string> + </property> + </widget> + <widget class="QLabel" name="lbl_row_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Row</string> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_3"> + <property name="geometry"> + <rect> + <x>180</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_4"> + <property name="geometry"> + <rect> + <x>180</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLabel" name="label_59"> + <property name="geometry"> + <rect> + <x>120</x> + <y>0</y> + <width>60</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; color:#00007f;">OUTPUT</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="pushButton_2"> + <property name="geometry"> + <rect> + <x>20</x> + <y>620</y> + <width>40</width> + <height>50</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>:/images/logo.jpg</normaloff>:/images/logo.jpg</iconset> + </property> + <property name="iconSize"> + <size> + <width>40</width> + <height>50</height> + </size> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + </widget> + <widget class="QPushButton" name="btnReset_2"> + <property name="geometry"> + <rect> + <x>30</x> + <y>1249</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btnDesign_2"> + <property name="geometry"> + <rect> + <x>150</x> + <y>1249</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + <widget class="QFrame" name="outputFrame_3"> + <property name="geometry"> + <rect> + <x>1088</x> + <y>610</y> + <width>320</width> + <height>690</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>320</width> + <height>690</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QLineEdit" name="txtShrCapacity_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>50</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>80</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>110</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtNoBolts_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>320</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldThick_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>410</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>440</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateThick_3"> + <property name="geometry"> + <rect> + <x>181</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_60"> + <property name="geometry"> + <rect> + <x>4</x> + <y>30</y> + <width>66</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_61"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Shear Capacity (kN)</string> + </property> + </widget> + <widget class="QLabel" name="label_62"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing Capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="labl123_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of Bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="t_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Bolts</string> + </property> + </widget> + <widget class="QLabel" name="label_63"> + <property name="geometry"> + <rect> + <x>10</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_64"> + <property name="geometry"> + <rect> + <x>10</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>End Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_65"> + <property name="geometry"> + <rect> + <x>10</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_66"> + <property name="geometry"> + <rect> + <x>10</x> + <y>440</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Weld Strength (kN/mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_67"> + <property name="geometry"> + <rect> + <x>10</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_68"> + <property name="geometry"> + <rect> + <x>4</x> + <y>350</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_69"> + <property name="geometry"> + <rect> + <x>10</x> + <y>320</y> + <width>140</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Edge Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_70"> + <property name="geometry"> + <rect> + <x>10</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_71"> + <property name="geometry"> + <rect> + <x>10</x> + <y>410</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Resultant Shear (kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_72"> + <property name="geometry"> + <rect> + <x>10</x> + <y>540</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>External Moment (kNm)</string> + </property> + </widget> + <widget class="QLabel" name="label_73"> + <property name="geometry"> + <rect> + <x>4</x> + <y>480</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt_3"> + <property name="geometry"> + <rect> + <x>180</x> + <y>540</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity_3"> + <property name="geometry"> + <rect> + <x>180</x> + <y>570</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_74"> + <property name="geometry"> + <rect> + <x>10</x> + <y>570</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Moment Capacity (KNm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Column</string> + </property> + </widget> + <widget class="QLabel" name="lbl_row_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Row</string> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_5"> + <property name="geometry"> + <rect> + <x>180</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_6"> + <property name="geometry"> + <rect> + <x>180</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLabel" name="label_75"> + <property name="geometry"> + <rect> + <x>120</x> + <y>0</y> + <width>60</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; color:#00007f;">OUTPUT</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="pushButton_3"> + <property name="geometry"> + <rect> + <x>20</x> + <y>620</y> + <width>40</width> + <height>50</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>:/images/logo.jpg</normaloff>:/images/logo.jpg</iconset> + </property> + <property name="iconSize"> + <size> + <width>40</width> + <height>50</height> + </size> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + </widget> + <widget class="QPushButton" name="btnReset_3"> + <property name="geometry"> + <rect> + <x>130</x> + <y>1239</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btnDesign_3"> + <property name="geometry"> + <rect> + <x>250</x> + <y>1239</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + <widget class="QFrame" name="outputFrame_4"> + <property name="geometry"> + <rect> + <x>1048</x> + <y>580</y> + <width>320</width> + <height>690</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>320</width> + <height>690</height> + </size> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <widget class="QLineEdit" name="txtShrCapacity_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>50</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>80</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>110</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtNoBolts_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>320</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldThick_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>410</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>440</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateThick_4"> + <property name="geometry"> + <rect> + <x>181</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_76"> + <property name="geometry"> + <rect> + <x>4</x> + <y>30</y> + <width>66</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_77"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Shear Capacity (kN)</string> + </property> + </widget> + <widget class="QLabel" name="label_78"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing Capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="labl123_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>150</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of Bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="t_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Bolts</string> + </property> + </widget> + <widget class="QLabel" name="label_79"> + <property name="geometry"> + <rect> + <x>10</x> + <y>230</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_80"> + <property name="geometry"> + <rect> + <x>10</x> + <y>290</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>End Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_81"> + <property name="geometry"> + <rect> + <x>10</x> + <y>380</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_82"> + <property name="geometry"> + <rect> + <x>10</x> + <y>440</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Weld Strength (kN/mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_83"> + <property name="geometry"> + <rect> + <x>10</x> + <y>260</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_84"> + <property name="geometry"> + <rect> + <x>4</x> + <y>350</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_85"> + <property name="geometry"> + <rect> + <x>10</x> + <y>320</y> + <width>140</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Edge Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_86"> + <property name="geometry"> + <rect> + <x>10</x> + <y>510</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_87"> + <property name="geometry"> + <rect> + <x>10</x> + <y>410</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p>Resultant Shear (kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_88"> + <property name="geometry"> + <rect> + <x>10</x> + <y>540</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>External Moment (kNm)</string> + </property> + </widget> + <widget class="QLabel" name="label_89"> + <property name="geometry"> + <rect> + <x>4</x> + <y>480</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt_4"> + <property name="geometry"> + <rect> + <x>180</x> + <y>540</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity_4"> + <property name="geometry"> + <rect> + <x>180</x> + <y>570</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_90"> + <property name="geometry"> + <rect> + <x>10</x> + <y>570</y> + <width>170</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Moment Capacity (KNm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Column</string> + </property> + </widget> + <widget class="QLabel" name="lbl_row_4"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>No. of Row</string> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_7"> + <property name="geometry"> + <rect> + <x>180</x> + <y>170</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLineEdit" name="lineEdit_8"> + <property name="geometry"> + <rect> + <x>180</x> + <y>200</y> + <width>130</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QLabel" name="label_91"> + <property name="geometry"> + <rect> + <x>120</x> + <y>0</y> + <width>60</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; color:#00007f;">OUTPUT</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="pushButton_4"> + <property name="geometry"> + <rect> + <x>20</x> + <y>620</y> + <width>40</width> + <height>50</height> + </rect> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset> + <normaloff>:/images/logo.jpg</normaloff>:/images/logo.jpg</iconset> + </property> + <property name="iconSize"> + <size> + <width>40</width> + <height>50</height> + </size> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + </widget> + <widget class="QPushButton" name="btnReset_4"> + <property name="geometry"> + <rect> + <x>90</x> + <y>1209</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btnDesign_4"> + <property name="geometry"> + <rect> + <x>210</x> + <y>1209</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + <property name="flat"> + <bool>false</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateWidth"> + <property name="geometry"> + <rect> + <x>150</x> + <y>510</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + </widget> + <widget class="QPushButton" name="btn_Reset"> + <property name="geometry"> + <rect> + <x>20</x> + <y>630</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Reset</string> + </property> + </widget> + <widget class="QPushButton" name="btn_Design"> + <property name="geometry"> + <rect> + <x>140</x> + <y>630</y> + <width>100</width> + <height>30</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Design</string> + </property> + </widget> + <widget class="QComboBox" name="combo_Beam"> + <property name="geometry"> + <rect> + <x>150</x> + <y>45</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + </widget> + <widget class="QComboBox" name="comboWldSize"> + <property name="geometry"> + <rect> + <x>150</x> + <y>570</y> + <width>160</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="styleSheet"> + <string notr="true">QComboBox { combobox-popup: 0; }</string> + </property> + <property name="currentIndex"> + <number>0</number> + </property> + <property name="maxVisibleItems"> + <number>5</number> + </property> + <item> + <property name="text"> + <string>Select Weld Sizes</string> + </property> + </item> + <item> + <property name="text"> + <string>3</string> + </property> + </item> + <item> + <property name="text"> + <string>5</string> + </property> + </item> + <item> + <property name="text"> + <string>6</string> + </property> + </item> + <item> + <property name="text"> + <string>8</string> + </property> + </item> + <item> + <property name="text"> + <string>10</string> + </property> + </item> + </widget> + <widget class="QLabel" name="lbl_connectivity"> + <property name="geometry"> + <rect> + <x>180</x> + <y>210</y> + <width>60</width> + <height>50</height> + </rect> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_9"> + <property name="geometry"> + <rect> + <x>10</x> + <y>45</y> + <width>131</width> + <height>22</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Beam Section *</string> + </property> + </widget> + </widget> + </widget> + <widget class="QDockWidget" name="outputDock"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>125</width> + <height>710</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>310</width> + <height>710</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="windowTitle"> + <string>OUTPUT</string> + </property> + <attribute name="dockWidgetArea"> + <number>2</number> + </attribute> + <widget class="QWidget" name="dockWidgetContents_2"> + <widget class="QLineEdit" name="txtNoBolts"> + <property name="geometry"> + <rect> + <x>200</x> + <y>120</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="t_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>120</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>No. of Bolts</string> + </property> + </widget> + <widget class="QLineEdit" name="txtShrCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>30</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPitch"> + <property name="geometry"> + <rect> + <x>200</x> + <y>210</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtGuage"> + <property name="geometry"> + <rect> + <x>200</x> + <y>240</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtBoltCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>90</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txt_col"> + <property name="geometry"> + <rect> + <x>200</x> + <y>180</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txt_row"> + <property name="geometry"> + <rect> + <x>200</x> + <y>150</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_152"> + <property name="geometry"> + <rect> + <x>0</x> + <y>240</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Gauge (mm)</string> + </property> + </widget> + <widget class="QLabel" name="labl123_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>90</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Capacity of Bolt (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtbearCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>60</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_153"> + <property name="geometry"> + <rect> + <x>0</x> + <y>270</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>End Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="lbl_col_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>180</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>No. of Column</string> + </property> + </widget> + <widget class="QLabel" name="label_154"> + <property name="geometry"> + <rect> + <x>0</x> + <y>210</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Pitch (mm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtEdgeDist"> + <property name="geometry"> + <rect> + <x>200</x> + <y>300</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="lbl_row_7"> + <property name="geometry"> + <rect> + <x>0</x> + <y>150</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>No. of Row</string> + </property> + </widget> + <widget class="QLabel" name="label_155"> + <property name="geometry"> + <rect> + <x>0</x> + <y>300</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Edge Distance (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_156"> + <property name="geometry"> + <rect> + <x>0</x> + <y>30</y> + <width>161</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Shear Capacity (kN)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtEndDist"> + <property name="geometry"> + <rect> + <x>200</x> + <y>270</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_157"> + <property name="geometry"> + <rect> + <x>-1</x> + <y>0</y> + <width>66</width> + <height>20</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Bolt</span></p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_158"> + <property name="geometry"> + <rect> + <x>0</x> + <y>60</y> + <width>179</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Bearing Capacity (kN)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_159"> + <property name="geometry"> + <rect> + <x>0</x> + <y>360</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_160"> + <property name="geometry"> + <rect> + <x>0</x> + <y>420</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Moment Capacity (kNm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtMomntCapacity"> + <property name="geometry"> + <rect> + <x>200</x> + <y>420</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_161"> + <property name="geometry"> + <rect> + <x>-1</x> + <y>330</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Plate</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="txtExtMomnt"> + <property name="geometry"> + <rect> + <x>200</x> + <y>390</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtPlateThick"> + <property name="geometry"> + <rect> + <x>200</x> + <y>360</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_162"> + <property name="geometry"> + <rect> + <x>0</x> + <y>390</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>External Moment (kNm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldStrng"> + <property name="geometry"> + <rect> + <x>200</x> + <y>540</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_163"> + <property name="geometry"> + <rect> + <x>0</x> + <y>510</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string><html><head/><body><p>Resultant Shear(kN/mm)</p></body></html></string> + </property> + </widget> + <widget class="QLabel" name="label_164"> + <property name="geometry"> + <rect> + <x>3</x> + <y>540</y> + <width>191</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Weld Strength (kN/mm)</string> + </property> + </widget> + <widget class="QLineEdit" name="txtResltShr"> + <property name="geometry"> + <rect> + <x>200</x> + <y>510</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtWeldThick"> + <property name="geometry"> + <rect> + <x>200</x> + <y>480</y> + <width>100</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="label_165"> + <property name="geometry"> + <rect> + <x>3</x> + <y>480</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>Thickness (mm)</string> + </property> + </widget> + <widget class="QLabel" name="label_166"> + <property name="geometry"> + <rect> + <x>-1</x> + <y>450</y> + <width>130</width> + <height>25</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; font-style:italic;">Weld</span></p></body></html></string> + </property> + </widget> + <widget class="QPushButton" name="btn_Savelog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>610</y> + <width>140</width> + <height>30</height> + </rect> + </property> + <property name="text"> + <string>Save Messages</string> + </property> + </widget> + <widget class="QPushButton" name="btn_Saveoutput"> + <property name="geometry"> + <rect> + <x>150</x> + <y>610</y> + <width>130</width> + <height>30</height> + </rect> + </property> + <property name="text"> + <string>Save Design</string> + </property> + </widget> + </widget> + </widget> + <action name="actionInput"> + <property name="icon"> + <iconset> + <normaloff>:/images/input.png</normaloff>:/images/input.png</iconset> + </property> + <property name="text"> + <string>Input</string> + </property> + <property name="toolTip"> + <string>Input browser</string> + </property> + </action> + <action name="actionInputwindow"> + <property name="icon"> + <iconset> + <normaloff>:/images/inputview.png</normaloff>:/images/inputview.png</iconset> + </property> + <property name="text"> + <string>inputwindow</string> + </property> + </action> + <action name="actionNew"> + <property name="text"> + <string>New</string> + </property> + </action> + <action name="actionOpen"> + <property name="text"> + <string>Open</string> + </property> + </action> + <action name="actionSave"> + <property name="text"> + <string>Save</string> + </property> + </action> + <action name="actionSave_As"> + <property name="text"> + <string>Save As</string> + </property> + </action> + <action name="actionPrint"> + <property name="text"> + <string>Print</string> + </property> + </action> + <action name="actionCut"> + <property name="text"> + <string>Cut</string> + </property> + </action> + <action name="actionCopy"> + <property name="text"> + <string>Copy</string> + </property> + </action> + <action name="actionPaste"> + <property name="text"> + <string>Paste</string> + </property> + </action> + <action name="actionInput_Browser"> + <property name="text"> + <string>Input Browser</string> + </property> + </action> + <action name="actionOutput_Browser"> + <property name="text"> + <string>Output Browser</string> + </property> + </action> + <action name="actionAbout_Osdag"> + <property name="text"> + <string>About Osdag</string> + </property> + </action> + <action name="actionBeam"> + <property name="text"> + <string>Beam</string> + </property> + </action> + <action name="actionColumn"> + <property name="text"> + <string>Column</string> + </property> + </action> + <action name="actionFinplate"> + <property name="text"> + <string>Finplate</string> + </property> + </action> + <action name="actionBolt"> + <property name="text"> + <string>Bolt</string> + </property> + </action> + <action name="action2D_view"> + <property name="text"> + <string>2D view</string> + </property> + </action> + </widget> + <resources> + <include location="ResourceFiles/icons.qrc"/> + </resources> + <connections/> +</ui> diff --git a/Connections/Shear/Finplate/finplate_calc1.py b/Connections/Shear/Finplate/finplate_calc1.py new file mode 100644 index 0000000..951e3dc --- /dev/null +++ b/Connections/Shear/Finplate/finplate_calc1.py @@ -0,0 +1,373 @@ +''' +Created on 25-May-2015 + +@author: subhrajit +''' +''' +Example 5.18 Page 412 N. Subramanium +Design of steel structures +Design of fin-plate: +Design a web side plate connection (welded to the column and site bolted to the beam) for ISMB 400 in Fe 410 grade steel and to carry a reaction of 140 kN due +to factored loads. The connection is to the flange of an ISSC 200 column. + +''' +import cmath; +import math +import sys; + +from model import * +from PyQt4.Qt import QString +import logging +flag = 1 +logger = None +design_logger = None + +def module_setup(): + + global logger + logger = logging.getLogger("osdag.finPlateCalc") + +def design_setup(): + global logger + logger = logging.getLogger("osdag.Design") + + +module_setup() + +#FUNCTION DEFINITIONS--------------- +#BOLT: determination of shear capacity = fu * n * A / (root(3) * Y) +def bolt_shear(dia, n, fu): + A = cmath.pi * dia * dia * 0.25 * 0.78; #threaded area = 0.78 x shank area + root3 = cmath.sqrt(3); + Vs = fu * n * A / (root3 * 1.25 * 1000); + Vs = round(Vs.real,3); + return Vs + +#BOLT: determination of bearing capacity = 2.5 * kb * d * t * fu / Y +def bolt_bearing(dia, t, fu): + #add code to determine kb if pitch, gauge, edge distance known + kb = 0.5; #assumption + Vb = 2.5 * kb * dia * t * fu / (1.25 * 1000); + Vb = round(Vb.real,3); + return Vb; + +# PLATE: minimum thickness of web plate for eccentricity +def web_min_h(shear, fy, thk): + min_plate_ht = 5*shear*1000/(fy*thk); + return min_plate_ht; + + +def finConn(uiObj): + + beam_sec = uiObj['Member']['beamSection'] + column_sec = uiObj['Member']['columSection'] + connectivity = uiObj['Member']['connectivity'] + beam_fu = uiObj['Member']['fu(MPa)'] + beam_fy = uiObj['Member']['fy(MPa)'] + + shear_load = uiObj['Load']['shearForce(kN)'] + + bolt_dia = uiObj['Bolt']['diameter(mm)'] + bolt_type = uiObj["Bolt"]["type"] + bolt_grade = uiObj['Bolt']['grade'] + + web_plate_t = uiObj['Plate']['thickness(mm)'] + web_plate_w = uiObj['Plate']['width(mm)'] + web_plate_l = uiObj['Plate']['height(mm)'] + web_plate_fu = uiObj['Member']['fu(MPa)'] + web_plate_fy = uiObj['Member']['fy(MPa)'] + + weld_t = uiObj["Weld"]['size(mm)'] + weld_fu = 410 + + bolt_planes = 1 + dictbeamdata = get_beamdata(beam_sec) + print dictbeamdata + beam_w_t = float(dictbeamdata[QString("tw")]) + beam_f_t = float(dictbeamdata[QString("T")]) + beam_d = float(dictbeamdata[QString("D")]) + + + # ############### Need to discuss with sir ######################## + # #Bolt grade chosen from drop down list + # + # #Bolt dia chosen from list of standard sizes between 12 and 36 + # + # # web_plate_t lies between (5, 63) + # if web_plate_t < 5 | web_plate_t > 63: + # sys.exit(); + # + # #weld_fu lies between (410, 610) + # if weld_fu <= 410 | weld_fu >= 610: + # sys.exit(); + + ######################################################################## + # INPUT FOR PLATE DIMENSIONS (FOR OPTIONAL INPUTS) AND VALIDATION + + # Plate thickness check + if web_plate_t < beam_w_t: + web_plate_t = beam_w_t + #logger.error("The length of the plate is more than the available depth of %2.2f mm " % (plate_len)) + + logger.error(": Chosen web plate thickness is not sufficient" ) + logger.info(" : Minimum required thickness %2.2f mm" % (beam_w_t)) +# print "ERROR: Chosen web plate thickness is not sufficient" + "\n Minimum required thickness = " + str(beam_w_t) + "mm"; +# print "\n Suggestion: Re-design with a plate thickness more than the connecting beam web thickness" + + # Plate height check + # Maximum/minimum plate height + max_plate_height = beam_d - 2 * beam_f_t - 40; + min_plate_height = web_min_h(shear_load,web_plate_fy,web_plate_t); + min_plate_height = int(min_plate_height) /10 * 10 +10; + min_plate_height = round(min_plate_height,3) + + # Height input and check + if web_plate_l == 0: + web_plate_l = min_plate_height; + if web_plate_l > max_plate_height : + print "Error: Height of plate is more than the clear depth of the beam" + print" Maximum plate height allowed is " + str(max_plate_height) + " mm" + web_plate_l = max_plate_height; + elif min_plate_height > max_plate_height: + print "Error: Height of plate is more than the clear depth of the beam" + print" Maximum plate height allowed is " + str(max_plate_height) + " mm" + web_plate_l = max_plate_height; + elif min_plate_height > web_plate_l: + print "\nERROR: Chosen plate height is not sufficient" + "\n Minimum required height = " + str(min_plate_height) + " mm"; + print "\nSuggestion: Re-design with a different plate height or thickness" + web_plate_l = min_plate_height; + + + ######################################################################## + # Bolt design: + + # I: Check for number of bolts ------------------- + bolt_fu = int(bolt_grade) * 100 + bolt_fy = (bolt_grade - int(bolt_grade))*bolt_fu; + + t_thinner = min(beam_w_t.real,web_plate_t.real); + bolt_shear_capacity = bolt_shear(bolt_dia,bolt_planes,bolt_fu).real; + bolt_bearing_capacity = bolt_bearing(bolt_dia,t_thinner,beam_fu).real; + + bolt_capacity = min(bolt_shear_capacity, bolt_bearing_capacity); + + bolts_required = int(shear_load/bolt_capacity) + 1; + if bolts_required <= 2: + bolts_required = 3; + + bolt_group_capacity = bolts_required * bolt_capacity; + + # Spacing of bolts for web plate ------------------- + if bolt_dia == 12 or bolt_dia == 14: + dia_hole = bolt_dia + 1 + elif bolt_dia == 16 or bolt_dia == 18 or bolt_dia == 20 or bolt_dia == 22 or bolt_dia == 24: + dia_hole = bolt_dia + 2 + else: + dia_hole = bolt_dia + 3 + + # Minimum/maximum pitch and gauge + min_pitch = int(2.5 * bolt_dia); + min_gauge = int(2.5 * bolt_dia); + + if min_pitch%10 != 0 or min_gauge%10 != 0: + min_pitch = (min_pitch/10)*10 + 10; + min_gauge = (min_gauge/10)*10 + 10; + else: + min_pitch = min_pitch; + min_gauge = min_gauge; + #clause 10.2.2 is800 + max_spacing = int(min(100 + 4 * t_thinner, 200)); #clause 10.2.3.3 is800 + + min_edge_dist = int(1.5 * (dia_hole)) + 10; # 10 mm added than min. value + if min_edge_dist%10 != 0: + min_edge_dist = (min_edge_dist/10)*10 + 10; + else: + min_edge_dist = min_edge_dist; + + max_edge_dist = int((12 * t_thinner * cmath.sqrt(250/beam_fy)).real)-1; + + # Determine single or double line of bolts + + length_avail = (web_plate_l-2*min_edge_dist); + pitch = round(length_avail/(bolts_required-1),3); + + ## Calculation of moment demand + + M1 = bolt_shear_capacity * 60; + # Single line of bolts + if pitch >= min_pitch: + print "\nComment: Single line of bolt is required" + bolt_line =1; + gauge = 0; + # print " Number of bolt lines = " + str(bolt_line); + # print " Pitch distance = " + str(pitch) + " mm" + "\n Gauge distance = " + str(gauge) + " mm"; + bolts_one_line = bolts_required; + K = bolts_one_line / 2; + M2=0; + if bolts_required % 2 ==0 or bolts_required % 2 !=0: + for k in range (0,K): + M2 = M2 + 2*(bolt_shear_capacity * ((length_avail/2 - k * pitch)**2/(length_avail/2 - k * pitch))); + moment_demand = max(M1,M2); + moment_demand = round(moment_demand * 0.001,3) + + # Multi-line of bolts + if pitch < min_pitch: + print "\nComment: Double line of bolts are required" + bolt_line = 2; + if bolts_required % 2 == 0: + bolts_one_line = bolts_required/2; + else: + bolts_one_line = (bolts_required/2) + 1; + + pitch = round(length_avail/(bolts_one_line-1),3); + gauge = min_gauge; + M1 = bolt_shear_capacity * (60+gauge/2); + + if pitch >= min_pitch: + K = bolts_one_line / 2; + M2=0; + if bolts_required % 2 ==0 or bolts_required % 2 !=0: + for k in range (0,K): + V = length_avail/2 - k * pitch + H = gauge/2; + d = math.sqrt(V**2 + H**2); + M2 = M2 + 2*(bolt_shear_capacity * (d**2/d)); + M2=M2*2; + moment_demand = max(M1,M2); + moment_demand = round(moment_demand * 0.001,3) + + # Needs discussion with Sir + else: + print "ERROR: Finplate connection is insufficient to carry the external force" + print "Suggestion: Reduce the external force or change the bolt grade/diameter" + + #################################################################################### + # Design of plate: + + # Width input (optional) and validation + if bolt_line == 1: + web_plate_w_req = 2 * min_edge_dist + if bolt_line == 2: + web_plate_w_req = gauge + 2 * min_edge_dist + + if web_plate_w == 0: + if bolt_line == 1: + web_plate_w_req = 2 * min_edge_dist; + web_plate_w = web_plate_w_req + if bolt_line == 2: + web_plate_w_req = gauge + 2 * min_edge_dist; + web_plate_w = web_plate_w_req; + + if web_plate_w < web_plate_w_req: + web_plate_w = web_plate_w_req; + + # Moment capacity of web plate + moment_capacity = 1.2 * (web_plate_fy/1.1) * (web_plate_t * web_plate_l * web_plate_l)/6 * 0.001; + moment_capacity = round(moment_capacity * 0.001,3); + # print " Moment capacity = " + str(moment_capacity) + " Nm"; + + if moment_capacity > moment_demand: + print " Plate is safe to resist external moment"; + else: + print "ERROR: Plate does not have sufficient moment capacity"; + print "Suggestion: Re-design with increased plate dimensions"; + + + # Plate dimension optimisation + + web_plate_l_req1 = math.sqrt((moment_demand*1000*6*1.1)/(1.2*beam_fy*web_plate_t)); + # Single line of bolts + if bolt_line == 1: + web_plate_l_req2 = (bolts_required-1) * min_pitch + 2 * min_edge_dist; + if web_plate_l == 0 or web_plate_l == min_plate_height or web_plate_l == max_plate_height: + web_plate_l_req = max(web_plate_l_req1, web_plate_l_req2, web_plate_l); + else: + web_plate_l_req = max(web_plate_l_req1, web_plate_l_req2,min_plate_height); + + # Multi line of bolts + if bolt_line == 2: + web_plate_l_req2 = (bolts_one_line-1) * min_pitch + 2 * min_edge_dist; + + if web_plate_l == 0 or web_plate_l == min_plate_height or web_plate_l == max_plate_height: + web_plate_l_req = max(web_plate_l_req1, web_plate_l_req2, web_plate_l); + elif web_plate_l > min_plate_height or web_plate_l < max_plate_height: + web_plate_l_req = max(web_plate_l_req1, web_plate_l_req2, min_plate_height); + + if web_plate_l < web_plate_l_req: + print "ERROR: Plate height provided is less than the minimum required"; + if web_plate_w < web_plate_w_req: + print "ERROR: Plate width provided is less than the minimum required"; + + ################################################################################## + ## Weld design + # V: Weld shear strength ------------------- + weld_l = web_plate_l - weld_t * 2; + + #direct shear + Vy1 = shear_load *1000 /float(2*weld_l); + + #shear due to moment + xCritical = 0; #single line weld + yCritical = weld_l * 0.5; #single line weld + + Ip = weld_l * weld_l * weld_l / 12; + + Vx = moment_demand * yCritical *1000000 / (2 * Ip); + Vy2 = moment_demand * xCritical * 1000000 / (2 * Ip); + + Vr = math.sqrt(Vx ** 2 + (Vy1 + Vy2) ** 2); + Vr = round(Vr,3); + + weld_strength = 0.7 * weld_t * weld_fu / (math.sqrt(3) * 1.25); + weld_strength = round(weld_strength,3); + + weld_t_req = (Vr * (math.sqrt(3) * 1.25))/(0.7 * weld_fu) ; + + if weld_t_req != int(weld_t_req): + weld_t_req = int(weld_t_req) + 1; + else: + weld_t_req = weld_t_req; + + if weld_t >= weld_t_req: + print " Weld thickness is sufficient" + "\n\nThe overall fin-plate connection design is safe"; + else: + print " ERROR: Weld thickness is not sufficient"; + print "\n\nThe overall fin-plate connection design is not safe"; + + # End of calculation + outputObj = {} + outputObj['Bolt'] ={} + outputObj['Bolt']['shearcapacity'] = bolt_shear_capacity + outputObj['Bolt']['bearingcapacity'] = bolt_bearing_capacity + outputObj['Bolt']['boltcapacity'] = bolt_capacity + outputObj['Bolt']['numofbolts'] = bolts_required + outputObj['Bolt']['boltgrpcapacity'] = bolt_group_capacity + outputObj['Bolt']['numofrow'] = bolts_one_line + outputObj['Bolt']['numofcol'] = bolt_line + outputObj['Bolt']['pitch'] = pitch + outputObj['Bolt']['enddist'] = min_edge_dist + outputObj['Bolt']['edge'] = min_edge_dist + outputObj['Bolt']['gauge'] = gauge + + outputObj['Weld'] = {} + outputObj['Weld']['thickness'] = weld_t_req + outputObj['Weld']['resultantshear'] = Vr + outputObj['Weld']['weldstrength'] = weld_strength + + outputObj['Plate'] = {} + outputObj['Plate']['minHeight'] = web_plate_l_req + outputObj['Plate']['minWidth'] = web_plate_w_req + outputObj['Plate']['externalmoment'] = moment_demand + outputObj['Plate']['momentcapacity'] = moment_capacity + outputObj['Plate']['height'] = web_plate_l + outputObj['Plate']['width'] = web_plate_w + + return outputObj + + + + + + + + diff --git a/Connections/Shear/Finplate/icons_rc.py b/Connections/Shear/Finplate/icons_rc.py new file mode 100644 index 0000000..b52f479 --- /dev/null +++ b/Connections/Shear/Finplate/icons_rc.py @@ -0,0 +1,3454 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created: Thu Sep 11 16:10:51 2014 +# by: The Resource Compiler for PyQt (Qt v4.8.6) +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore + +qt_resource_data = "\ +\x00\x00\x02\xe0\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x02\xa7\x49\x44\x41\x54\x78\x9c\x8d\x93\x4d\x48\x54\x51\ +\x18\x86\x9f\x3b\x1e\x1d\xa7\x71\x9c\xc9\x1f\xcc\x30\x1b\x49\x92\ +\x7e\xa0\xcc\xdc\x44\x45\x8b\xa0\x8d\x19\x2a\x6e\x62\x6a\x17\x35\ +\x54\x0b\x5d\xe9\xae\x9d\xb4\xa9\x85\x82\x41\xd0\xa2\xda\xd9\x18\ +\xe8\x2a\x08\x8a\x90\x20\x2a\xfa\x0f\x86\x0a\xad\x66\x94\x69\x9a\ +\x69\x9c\x99\xeb\xbd\xd7\x7b\xee\x3d\x2d\x46\x4b\x29\xa2\x77\xf7\ +\x9d\x73\xde\xe7\xfb\xbe\x17\x8e\xc6\xf0\x43\x05\x0c\x31\x72\xe4\ +\x32\x00\x17\xa7\x87\x11\xa2\x0f\x51\xde\x86\x10\x7e\x00\xa4\xd4\ +\x91\x76\x1c\x29\x63\x8c\x1e\x1f\x61\x8d\xb4\x15\x00\xd8\xf6\x20\ +\x8e\x3c\x89\xcf\xd7\x11\xae\xaf\xd6\x1a\x82\x3e\x0e\xb7\x35\x02\ +\xf0\x28\xbe\x40\x6a\xd1\x60\x2e\x9d\x57\x18\xc6\x73\x6c\x7b\x80\ +\xb1\xee\x99\x12\x60\xe8\x81\xea\x6f\x6f\x62\xe2\x45\x82\x70\x43\ +\x90\xce\xcd\x01\xc2\x4d\xf5\x00\xcc\x25\xd2\x00\xeb\xea\x89\xd7\ +\x0b\x60\x18\xb3\x2c\x5b\xa7\x19\xeb\x9e\x11\x28\x97\xcd\x8d\xb5\ +\xf4\x38\x2e\xcd\x4d\x75\x7c\x49\x66\x98\x78\xf2\x89\xb9\x74\x01\ +\x34\x0d\x94\x82\x57\x49\xc2\x75\xd5\x9c\xe8\xd8\x4a\x8f\xe3\x72\ +\xf7\xcd\x42\x0b\xca\xb9\x0a\x74\x96\x71\xe0\xf4\xa5\xbd\x2d\xf5\ +\xf8\xfd\x3e\x66\x13\x19\xa6\x5f\x7e\x25\xb7\xa8\xe7\x30\x8d\x3b\ +\x98\x46\x14\xcb\xba\x81\x2d\xbd\x39\xdd\x6c\x4e\x15\xac\xca\x3d\ +\xad\x9b\xd8\x54\x59\xc6\x87\xef\x7a\x23\xed\xfd\xcb\x02\xd7\x65\ +\xc9\x76\xd0\x80\xda\xda\x20\x47\x77\x38\xdc\x7f\x3f\x1f\xa2\x2a\ +\xf0\x96\x91\x23\x8f\x57\xb2\x7a\xcc\xf9\xa9\xc8\x5c\x32\x3d\x7a\ +\xcf\x75\x42\x87\x76\x37\xd3\xba\x21\xa9\x7d\xb4\xb4\x3e\x8d\xc1\ +\x7b\x0a\x05\x68\x6b\xa2\x5d\xad\xaf\x1c\x5b\x7b\x0a\x17\xa6\x6e\ +\x51\x51\x11\xe9\x3d\xbc\x8b\x6f\xa9\x2c\x33\xef\x12\x45\xf1\xc7\ +\xa3\x7f\xc9\x75\xc7\x91\x32\xa2\x9b\x36\xfe\x60\x00\x50\x7e\xf1\ +\xdf\xe6\x55\x39\x0e\x45\x4b\xa2\x94\x02\x29\x11\x9c\x9b\x2c\xa0\ +\xdc\xaa\x5f\x3b\x78\x3c\xb7\x19\xef\x39\xf5\x57\xb3\x52\x51\x1c\ +\x87\x82\x69\x53\xcc\xe5\x41\xb9\xba\x07\xa5\xe2\x48\x97\x6d\x3b\ +\x5b\x69\xdc\xd2\x00\x8e\xd3\x45\xf4\x6e\xe4\x0f\x73\x74\x32\x82\ +\x74\xba\xc2\x0d\x21\x8a\x96\x4d\x3a\x95\x05\x57\xc5\x05\x9a\x16\ +\x43\x39\xfb\x8a\xcb\xb6\xa6\x79\x2b\xc1\xe3\x09\x61\xdb\xa3\x9c\ +\x8d\x1d\xc3\xe3\x19\x5f\xd9\x3d\x8a\x2d\xbb\x70\x64\xc8\x0c\x04\ +\x59\xce\x2c\x52\xc8\xe5\x15\x5e\x6f\xac\x34\xf7\x99\x89\xa7\x58\ +\xe6\xfe\xea\xb6\xed\x00\xf8\x32\xdf\x48\x7d\xcf\xad\x69\xaf\x11\ +\x6e\xaa\x23\xeb\x0f\x21\xf5\x25\x96\x12\x49\xf0\x56\x3e\xe3\x7a\ +\x7f\x67\x29\x44\x21\x06\x70\x2b\x6e\xe6\x67\x3f\xb7\x88\xda\x1a\ +\xcc\xea\x1a\x2a\x02\x35\xb8\xa6\x51\x8a\xc5\xe7\x63\x5e\x81\x9b\ +\xd7\x91\xc9\x04\x78\xbd\xb3\x08\x31\x50\x42\xaf\xea\xdc\xe4\x41\ +\xa4\x7d\x15\xc3\xe8\x20\x18\xd2\x36\x7a\xcb\xf8\xe1\x0f\x95\xee\ +\xb2\x19\xb0\x2c\x30\x0d\x85\x6f\xc3\x73\xca\xc5\x00\xe3\xbd\x33\ +\xeb\x01\xbf\x41\xc3\x48\xd9\x87\xb4\xdb\x90\xd2\xbf\x32\xa1\x8e\ +\x28\x8f\x23\x44\x8c\x6b\xbd\xeb\xbe\xf3\x4f\x57\xf9\x31\xd1\xb0\ +\x87\x00\x45\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x2a\xaf\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ +\x00\x46\xc9\x6b\x3e\x00\x00\x00\x09\x76\x70\x41\x67\x00\x00\x00\ +\x80\x00\x00\x00\x80\x00\x30\xe1\x31\x9a\x00\x00\x00\x06\x62\x4b\ +\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x29\xd8\ +\x49\x44\x41\x54\x78\xda\xed\x7d\x07\x9c\x1c\xd5\x99\xe7\x57\xd5\ +\x71\xba\x67\x7a\x72\xce\x1a\xcd\x28\x6b\x84\x32\x20\x59\x88\x8c\ +\x31\x02\x0c\xf6\x12\x4c\xb0\xe1\x6c\x6e\xd7\x5e\x73\xd8\xdc\x1a\ +\x9f\xf7\xd6\xbb\xe7\xb0\xbe\xb3\xd7\x61\xd7\xbb\x78\x77\xbd\x0b\ +\x36\xb6\x31\xc6\x5e\xc0\x60\x44\x30\x42\x08\xac\x41\x39\x80\xc2\ +\x04\x4d\xce\x79\xa6\x7b\x3a\x77\xdd\xf7\xbd\xaa\xea\xae\xaa\xae\ +\xea\x09\x0a\xdd\x23\xcd\xd3\xef\x53\x85\xee\xa9\xae\xf7\xbe\xff\ +\xfb\xd2\xfb\xde\x7b\x1c\x2c\x14\xa3\x62\x43\xaa\x42\x2a\x93\xa8\ +\x08\xc9\x6e\xf0\xdd\x31\x89\xda\x90\xba\xa4\x63\x78\x3e\x54\x92\ +\x5b\xe0\x33\x2b\x4e\xa4\xf5\x48\x5b\xa4\xe3\x52\x89\xe6\x5a\x42\ +\x48\xa7\x24\x6a\x40\x7a\x17\xe9\xc0\x7c\x01\xc5\xa5\x52\x6a\x90\ +\xfe\x0a\x69\x17\x92\x17\x49\x38\xcf\x34\x89\xf4\x2a\xd2\xe7\x90\ +\x4a\x17\x9a\x3f\x39\x25\x17\xe9\x4b\x48\x87\x2f\x00\xc3\xa7\xa3\ +\x3d\x48\x0f\x49\xd2\x67\xa1\x9c\xe7\xb2\x0e\xe9\x57\x17\xa8\xa7\ +\xcf\x45\x32\xfc\x0b\xd2\x92\x05\x1b\xe0\xdc\x97\x6d\x48\x5f\x47\ +\xba\x6a\x4e\xe2\x22\x37\x0f\x2a\x2a\x2b\xa1\xa4\xb4\x0c\x72\x72\ +\x72\xc0\xe5\x72\x61\x8b\x71\x60\xb3\xd9\x20\xe0\x0f\xd0\x29\x2b\ +\xa3\xa3\x23\x30\x3a\x32\x0a\xdd\x5d\x9d\xd0\xde\xde\x86\xd7\xa3\ +\x73\x7d\xdf\x17\xa4\xf7\x3d\xba\x00\x80\xb3\x2b\xf5\x48\x3f\x98\ +\x0d\xe3\x73\x72\x73\x61\xfd\xfa\x8d\xb0\xaa\x7e\x0d\xac\x46\xaa\ +\xad\x5b\x02\x4e\xa7\x13\x99\xcc\x69\x08\x62\xe7\xa0\xb9\x96\x3e\ +\x9f\x9c\x98\x80\xe3\xc7\x8e\xc1\xc9\x13\x1f\xc2\xfe\xfd\xfb\x60\ +\xef\xde\x3f\xb1\x7b\xb3\x28\xcf\x22\x7d\x0d\xa9\x65\x01\x00\xb3\ +\x2b\x99\x48\xdf\x45\x7a\x10\xc9\x3c\xdd\x97\x17\x23\x93\xaf\xbe\ +\xf6\x7a\xd8\xbe\xfd\x1a\x76\x1e\x65\x26\xe8\x30\x7b\x96\x20\xd0\ +\x7e\x7e\xf8\xd0\x41\xf8\xe3\x9b\x6f\xc0\x8b\x2f\xbe\x00\xed\x6d\ +\x6d\x33\xa9\x8b\x4f\xaa\xcb\x37\x90\xfc\x0b\x00\x98\xbe\xdc\x81\ +\xf4\x24\x52\x5e\x42\x84\x64\x66\xc1\x4d\x1f\xdb\x01\x3b\x6e\xbf\ +\x03\xaa\xab\x17\x19\x32\xd7\x62\x36\x83\xc5\x82\x64\x36\x81\x89\ +\x47\x32\xf1\x12\x43\x01\x78\x3a\x27\x9f\x2e\x22\xb0\xa3\x20\x08\ +\xc0\xfe\xa1\x46\x8f\xd0\x79\x44\xbc\x36\x02\xc9\xb1\xa3\x47\xe0\ +\x57\xbf\xfc\x05\xfc\xf6\xf9\xdf\xc0\xd4\xd4\xd4\x74\xf5\x6a\x93\ +\x00\xbd\x7b\x01\x00\xc6\xbd\x9e\x18\x7f\x57\xa2\x2f\x95\xa2\x1e\ +\xbf\xe7\xfe\xcf\xc0\x0d\x1f\xbd\x19\x6c\x76\x7b\x94\x31\x3c\x31\ +\x86\xe7\xc1\x6e\xb3\x42\x9a\xdd\x06\x36\xab\x05\xac\xc8\x78\x8e\ +\x3b\xfb\xa6\x89\x44\x22\x48\x82\x08\x10\x01\xe2\x24\xc5\xe4\xc4\ +\x38\x3c\xf7\xeb\x67\xe1\x1f\x7f\xf4\x43\x18\x1c\x1c\x9c\xee\x71\ +\xa4\xd2\xbe\x72\xae\xa5\xc1\x7c\x07\x00\x59\xf7\xcf\x4b\x11\x3b\ +\xdd\x42\x06\xdc\x7d\x0f\x3e\x04\xd7\xdd\xf4\x31\x30\x9b\xcd\x8a\ +\x5e\xce\x83\x13\x19\x9e\xee\x4c\x03\x67\x1a\x02\x82\x3f\xcf\x4d\ +\x21\x4b\x07\x42\x02\x80\x4a\xe2\x90\x41\xf9\xb3\xa7\x9f\x92\x80\ +\x30\x90\xe8\x29\x47\xf0\x6f\xee\xc4\x67\xb4\x2c\x00\x00\xe0\x01\ +\xa9\xe7\xeb\x86\x67\x9d\xce\x74\xb8\xf7\x81\xcf\xc0\x1d\x7f\x76\ +\x0f\x32\xde\xa2\x10\xed\x26\x70\xa5\x3b\x21\x33\xc3\x09\x66\x93\ +\x29\x29\x2f\x2e\x28\x1b\x5f\xa1\x76\xa6\x3c\x1e\x06\x82\x7f\xf9\ +\xe7\x1f\x83\xdf\x6f\xd8\xd1\xc7\x24\x69\xf7\xda\xa5\x0c\x80\x6f\ +\x4b\xe2\x50\xb7\x6c\xf9\xc8\x76\xf8\xef\x7f\xf9\x18\xe4\x17\x14\ +\x46\x7b\x1a\x31\x3e\x27\xcb\xc5\x18\x7f\x2e\xc4\xfb\xb9\x2c\x3c\ +\xaf\xb6\x43\x9a\x9b\x9a\xe0\xb1\x47\xbf\x08\xfb\xf6\xbd\x6f\xf4\ +\x27\x14\x6a\x7e\x14\xe9\xc7\x67\xfb\xdb\xa6\x79\xc6\x78\x7a\xdf\ +\x5f\x22\x3d\x62\xd4\xeb\xbf\xf8\xf8\x13\xf0\xc0\x43\x8f\x80\x03\ +\xcf\x09\xdf\x26\xd4\xef\x79\xd9\x2e\x28\x2e\xc8\x65\x7a\x3e\x15\ +\x8b\x52\x2d\x88\xf1\x87\x5c\xb8\xe7\xde\x4f\x61\x7d\x1c\xd0\xb0\ +\x77\x2f\x84\xc3\x71\x43\x08\x3c\xd2\x47\x25\xe9\xf7\xc7\x4b\x45\ +\x02\x98\x24\xff\xf8\x4e\x23\x97\xee\xab\x7f\xf3\x4d\x28\x2c\x2e\ +\x65\x95\xa2\xc6\xa4\xde\x5e\x98\x97\x8d\x2a\xe0\xec\x70\xee\xf5\ +\x05\xc0\x33\xe5\x05\x7f\x20\x08\x53\x3e\x1f\x84\x43\x61\x26\xc6\ +\xc9\x53\x20\x50\xd9\xed\x56\xb4\x25\x1c\x60\x47\x03\xf2\x6c\x05\ +\xb2\xd9\xcc\xa3\x44\xe0\xa3\x46\xea\x87\x1f\x1e\x87\xcf\x7c\xfa\ +\x41\x68\x6b\x6d\x4d\x64\x1c\xfe\x8f\x8b\x1d\x00\x09\x99\xbf\xfd\ +\xba\x1b\xe1\x2f\x1e\x7d\x9c\x45\xe8\xa8\xe1\xc8\xd8\x2b\x2d\xcc\ +\x63\x06\xde\xec\x99\xed\x87\xfe\x81\x61\xe8\x1b\x1e\x85\xa1\xe1\ +\x31\x18\x9d\x70\xa3\x3e\x0e\x48\x96\xbc\x44\xb2\xeb\x27\xc4\x2c\ +\x7c\x3a\x12\x18\x48\xcd\xe4\xe5\x66\x41\x19\xfe\x7e\x59\x71\x01\ +\xbe\xd3\xec\xa5\x0e\x49\x2d\x02\x17\x19\xa6\xf4\x6f\x02\xbd\x05\ +\x02\xc1\x9e\x77\x76\x9f\x73\x10\xcc\x17\x00\xfc\xc6\x88\xf9\xf7\ +\xdc\xff\x10\x7c\xf2\xde\xfb\xa3\xfa\x33\xc3\xe1\x80\xd2\xe2\xfc\ +\x59\x19\x78\x1e\xaf\x17\xda\x3a\xfb\xa0\xa3\xa7\x1f\x86\x47\xc7\ +\xa3\xd6\xba\xcc\xdc\x40\x30\x08\x3e\x34\xca\x48\x14\xfb\x08\x0c\ +\x51\x33\x4e\x94\x02\xd4\x63\xad\x16\x0b\xba\x94\x7c\x34\x1e\x40\ +\xff\xd1\xfb\x14\xe6\xe7\x40\x6d\x55\x19\xd4\x2d\xaa\x60\xde\xc6\ +\x8c\x19\x43\x21\x67\x94\x28\x62\xcc\x81\x43\x77\x32\x0c\x5f\xf9\ +\x9f\x8f\xc3\xd3\xe8\x2d\x18\x94\xbf\x47\x7a\xe2\x62\x04\xc0\xff\ +\x43\xfa\x72\xbc\xe1\x64\x82\x87\xff\xfc\x2f\xe1\xc6\x9b\x6f\x8d\ +\xba\x53\xf9\xb9\xd9\x28\xf2\x73\x60\xa6\x36\x5e\x77\xdf\x10\x9c\ +\x69\xef\x86\x9e\x81\xa1\x28\xc3\x43\xc8\xe4\x91\xf1\x09\x18\x9b\ +\x98\x84\x09\xb7\x1b\xc1\xe1\xd3\xd3\xc1\xfa\x3d\x17\x41\xe7\xb0\ +\xdb\x19\x39\xd3\xd2\xc0\x81\x44\xef\x26\x48\x60\xa8\xa9\x28\x81\ +\xd5\xcb\x6b\xa1\x1c\x01\x3a\xd3\x62\x45\x10\x30\x69\x20\x05\x93\ +\xfe\xcf\xdf\xfd\x2d\xf3\x14\x0c\xca\xe7\x67\x6b\x18\xa6\x3a\x00\ +\x68\xb8\xf4\xdf\xe3\x99\xcf\xc3\xa3\x7f\xf5\xd7\x70\xc5\x96\x6d\ +\xac\x61\xe9\xba\xb4\x28\x1f\xb2\x33\x33\x66\xc8\xf8\x41\x38\xd5\ +\xd2\x0e\x13\x93\x1e\xc6\x9c\x20\xea\xf4\xbe\xa1\x21\xe8\x1d\x1c\ +\x82\x71\x64\x7c\x44\x88\xf5\xf0\x00\x58\x60\x8a\x73\x82\x97\x4b\ +\x83\x20\xd8\x20\xcc\xa9\x23\xcc\x66\x21\x08\x56\xc1\x8f\xd6\x98\ +\x17\x1c\x82\x07\xbf\x1d\x8a\xbd\x27\xbe\x1b\xd9\x06\x59\x19\x2e\ +\x3c\x3a\x99\xe5\x46\x4f\x26\xa9\x70\xe5\xfa\x55\x50\x56\x54\x30\ +\x33\x10\x58\xcc\x4c\x95\xc8\x20\xf8\xc9\x93\x4f\xc2\x5f\x7f\xed\ +\xab\x46\xde\xc1\xc7\x66\xe3\x22\xa6\x32\x00\x36\x81\x98\x49\x13\ +\x17\xd3\xff\xdc\x17\x1e\x83\x6b\x6e\xb8\x99\x35\x08\x85\x68\x2b\ +\x4a\x0b\x99\x6f\x3f\x5d\x19\x1b\x9f\x84\x0f\x1a\x5b\x59\xef\x26\ +\xc6\xbb\xd1\xb0\x6b\xed\xec\x86\xee\xfe\x01\x08\x47\x22\xa2\x0d\ +\x00\x69\x30\xcc\xe7\xc1\x28\x97\x0b\xe3\x7c\x16\x04\x38\xfb\xac\ +\x5e\x3a\x2d\xe2\x81\x4c\x61\x0c\xb2\x85\x11\xc8\x8d\x0c\x80\x15\ +\x61\x23\xeb\xf5\x9c\xac\x4c\xc8\xc9\xcc\x8a\xaa\x27\xb2\x11\xb6\ +\x6d\x5a\xc3\xec\x86\xe9\x0a\x85\xa5\xd3\x24\x1b\x67\x1a\x49\x30\ +\x86\xdf\x59\x3f\xd3\x60\x51\xaa\x02\x80\x12\x37\x8e\x80\x98\x8b\ +\xa7\x2a\x77\xdd\xf7\x10\xdc\xf6\x89\xbb\x58\x43\x50\x8c\xbe\xba\ +\xa2\x18\x9c\x8e\xc4\xc6\x5e\x38\x1c\x81\xa6\xd6\x4e\x68\xef\xee\ +\x63\x8c\xf7\xa2\x25\x7f\xb2\xa5\x95\x31\x9e\x3a\x7b\x10\x31\xd6\ +\xc7\x97\x20\x95\xc2\x24\x9f\x79\x4e\x2b\x92\x15\x19\x86\xe2\x48\ +\x37\x14\x44\xfa\xd0\x92\x8d\xb0\xf7\xce\x71\xb9\x20\x3f\x27\x87\ +\xa9\x0c\x02\xc6\xda\x55\x4b\x60\xc3\xea\x65\xd3\x46\x23\x49\x15\ +\xb0\xa8\xa5\x04\x82\xc7\xbf\xf4\x98\x91\x4d\x40\x6d\xb7\x19\x66\ +\x10\x36\x4e\x55\x00\xfc\x5e\x12\x65\xaa\x72\xd5\xb5\x37\xc0\x67\ +\x3f\xff\x25\x49\xec\x73\x50\x5d\x5e\x02\x19\xe9\x8e\x84\x0f\x72\ +\x7b\xa6\xe0\xf8\xe9\x33\x30\x85\xba\x3c\x84\xa2\xbe\xa9\xad\x03\ +\x4e\xb7\xb6\xb3\x38\xbd\x1f\xfb\x67\xbb\x69\x11\xf4\xf0\xe5\x10\ +\xe1\xe2\x8d\xc6\xd2\x6c\x3b\xac\xaf\xca\x82\xa5\xc5\xe9\x50\x53\ +\xe0\x80\xa2\x4c\x3b\xa4\xdb\xd5\x02\xa9\x6f\xdc\x07\xfd\xe3\x7e\ +\x68\x1e\xf0\xc0\x91\xf6\x09\x38\xd2\x39\x0e\x1e\x7f\xbc\xcd\x40\ +\xaa\xa2\x2c\xdc\x0e\xe5\x91\x36\xa6\x26\x48\x6d\x15\xa2\xbf\x9f\ +\x93\x29\x02\x2e\x3f\x27\x0b\x6e\xbc\x6a\x13\xd6\x27\xb1\x24\x23\ +\xc3\xd0\x41\x20\x90\x0c\xc3\x4f\x7e\xe2\x4e\x23\xef\x60\x46\x9e\ +\x41\x2a\x02\x80\x42\xbc\x71\xb0\xae\xa9\x5b\x0a\xff\xfb\x5b\xdf\ +\x43\xf1\x29\xc6\xf3\x2b\x4b\x8b\xa6\xd5\xf9\xfd\xc3\x23\xac\xe7\ +\x93\x04\x18\x45\xc3\xae\xe1\xe8\x07\x0c\x10\xd4\xe3\xdb\x4c\x35\ +\xd0\xcd\x57\xa8\x18\x6f\x42\x50\x6d\xa9\xcb\x81\xdb\xd7\x16\xc1\ +\x0d\x2b\xf3\xa1\x2a\xcf\x31\xeb\x97\x0f\x85\x05\x38\xd0\x36\x06\ +\x7f\x38\x36\x00\xcf\xef\xef\x85\xd6\xa1\xa9\x38\x20\x94\x87\x5b\ +\xa1\x02\x81\x40\x12\x21\x0d\x0d\xc6\xb2\xc2\x42\xe6\x45\x10\x5d\ +\xb7\x75\x03\x54\x94\x14\x26\xfc\x0d\x8a\x3b\xc8\x20\x20\x17\xf1\ +\xba\x6b\xaf\x36\x8a\x13\x5c\x05\xd3\x8c\x22\xa6\x1a\x00\xa8\xe6\ +\x94\x49\x9b\xa5\xbc\x99\x8e\x46\xd4\x37\xbe\xfb\x4f\x90\x9b\x97\ +\xcf\x98\x5f\x54\x90\x0b\x45\xf9\xb9\x09\x1f\x44\x2e\x5d\x77\xef\ +\x00\x33\xe8\x1a\xb1\xc7\x1f\x39\xd9\xc8\xc4\xff\x00\x57\x08\x8d\ +\xe6\xe5\xa8\xdb\x6d\xd1\xef\xe6\x65\x58\xe1\xbf\x7d\xa4\x02\xee\ +\xda\x54\x0a\x85\x2e\xdb\x39\xad\xd0\xe1\x8e\x71\xf8\xe9\x9e\x0e\ +\x78\xe9\x70\x3f\x04\x42\x91\x98\xad\x80\x06\xe3\xd2\xd0\x07\x68\ +\x2b\x8c\x32\x63\xb1\x04\x41\x90\x99\x9e\xce\xea\xb7\x65\xc3\x6a\ +\x58\x5e\x5b\x9d\xf0\xb9\x14\xe3\xb0\x4b\x86\x21\x05\x8b\x6e\xba\ +\xe1\x7a\xbd\xf1\x83\x36\x10\xb3\x9b\xfd\xf3\x25\x14\x4c\x16\xff\ +\xfa\x38\xa3\xef\x8b\x8f\x43\x4d\xed\x12\x36\x70\x42\x22\xb2\x7c\ +\x9a\x1e\xd2\x89\xcc\xef\x1d\x1c\x66\x0c\x7f\x1f\x7b\xfd\xc9\x96\ +\x36\x14\xba\x26\x38\x61\x5a\x0d\xad\xe6\xda\xa8\x25\x9f\x9b\x6e\ +\x85\xc7\x6e\x58\x04\xff\xf7\x93\xcb\x99\xa8\x37\x9b\x38\xf0\x23\ +\x93\xce\x25\x65\x3b\x2d\x70\xcd\xb2\x3c\xb8\x73\x43\x09\xf8\x02\ +\x11\x38\xd9\x3b\xc9\xec\x8e\x10\x67\x85\x3e\x53\x19\x7b\x2f\xb2\ +\x13\x26\xd1\xe5\xa4\xf7\x25\xf7\xb1\xa3\xbb\x9f\x59\xfe\x05\x79\ +\xd9\x86\x75\x0c\x06\x83\x68\x13\x50\x9c\x80\x83\x82\x82\x42\x16\ +\x04\xdb\xfd\xf6\xdb\x71\x26\x88\x74\xdc\x35\x1f\x24\xc0\x95\x92\ +\xd5\xaf\xbe\xb9\xed\x6a\x78\xf8\x2f\x1e\x63\x3d\x83\x44\xe4\xd2\ +\x9a\xca\x84\xa1\xdd\x2e\x74\xf1\x06\x86\x46\x58\xf0\xe6\xed\x86\ +\x83\xe8\xde\x0d\x83\x07\x9c\x70\xdc\x72\x19\xba\x73\xe9\x22\xea\ +\xb1\xd6\x77\x6f\x2e\x83\x87\xb7\x55\x80\xc3\x6a\x3a\x7f\xad\x22\ +\xc4\xdf\x6a\x1d\x9c\x82\x6f\xbf\xd2\x04\x47\x3a\x62\x29\x62\xae\ +\xc8\x18\xac\x0a\x1d\x42\x27\x33\xc0\xa4\x40\x69\xa1\x38\x88\xb5\ +\xf9\xb2\x15\xb0\x6a\x69\x4d\xc2\x88\x61\x36\x7a\x10\xbc\x14\x31\ +\xbc\xe5\xe6\x9b\xf4\x06\x90\x28\xb3\x68\x25\x18\xa4\x97\xa5\x12\ +\x00\xf6\x6b\x7b\x7f\x7a\x7a\x06\x7c\xf3\xfb\x4f\x42\x86\x2b\x93\ +\x59\xbd\x8b\xab\xca\x12\x1a\x49\x7d\x03\xc3\x30\x38\x32\x0a\x81\ +\x40\x08\x5e\x7f\xaf\x01\x06\x87\x47\xd1\x27\xca\x82\x63\xe6\xb5\ +\xac\xc7\x31\xd7\x0b\x0d\xbb\xaf\xde\x52\x0b\x8b\x0b\xd3\x8d\x6b\ +\xcf\xcd\xb5\x99\x84\x69\x01\x20\x97\x17\x0e\xf4\xc2\x7f\xa0\x6a\ +\xf0\x05\x45\xb5\x60\x17\xbc\x50\x1f\x3c\x80\x50\xf5\x80\xcb\xe9\ +\x84\xb2\xa2\x22\x06\x82\x2b\xd6\xad\x82\x65\xb5\x55\xc6\x6e\x27\ +\xaa\x01\x97\x34\xc2\x49\xa3\x88\xd7\x6c\xdf\xa6\xa7\x0a\x28\x8c\ +\x7e\x77\x2a\xab\x80\x5b\x91\x1e\x8b\x73\xf9\x1e\xf8\x2c\xd4\x2e\ +\x59\x2e\x8a\xeb\xec\x4c\xb4\x94\xb3\x0d\x93\xab\xc9\xb7\x27\x86\ +\x53\x3a\xd6\xeb\xef\x36\xc0\x00\x1a\x80\xc4\xfc\xa3\xe6\xf5\x28\ +\xf2\xc5\x41\x1a\x32\xf0\x9e\xf8\x58\x2d\x64\xa1\xe8\x0f\xa0\x61\ +\x48\x3a\x59\x24\x01\xaf\x15\x14\xd2\x92\xf4\xbd\xb0\x01\x29\x9f\ +\xa3\xa4\xb8\x67\xc6\xbe\xbb\xa8\xc0\x09\xeb\xab\xb3\x98\x24\x20\ +\xaf\x21\x84\xef\x38\xc8\x17\x41\x6e\x64\x10\x84\xa0\x87\x49\x30\ +\x17\x4a\x03\x92\x68\x79\x39\x99\x0c\x14\x7a\xf5\xa6\x20\x16\xb9\ +\x87\x14\x0f\xa1\x51\x44\x3f\xba\xb8\x0d\x0d\x7b\xb5\x4d\x49\x12\ +\x80\x32\x8e\xfb\x53\x55\x02\xd0\x44\x8d\x35\xca\x1b\x65\x15\x55\ +\xf0\xbf\xbe\xf9\x0f\x2c\x68\x42\x41\x10\x32\x8a\x8c\xe2\xfb\xbe\ +\x40\x80\xe9\x7d\x4a\xbf\x7a\xab\x61\x3f\xb4\xb4\x77\x29\x98\x6f\ +\x66\xb5\xdc\x71\x59\x31\x7c\x7c\x5d\x91\xa6\xc6\x9c\xfa\x5a\xa7\ +\x35\xee\x58\x53\x08\xe9\x36\xf3\xac\x2a\xf3\x6e\xcb\x28\xb4\x28\ +\xad\x7f\xad\x24\x50\x44\x1a\x27\xbd\x21\xf8\xe1\x9b\xad\xd0\xdc\ +\xe7\x66\xdf\xa3\xa8\xe2\x65\xc1\x7d\x4c\x12\xe4\x65\x67\x33\x57\ +\x91\xec\x81\x1d\xd7\x6d\x85\x0c\xa7\xc3\x20\x04\xcd\x33\x37\x92\ +\xe2\x08\x94\x54\xb2\x79\xe3\x06\xbd\xcc\x22\x02\xc0\xed\xa9\x28\ +\x01\x6e\xd6\xeb\xfd\xf7\x7c\xfa\x11\x28\x29\x2b\x67\x86\x1f\x85\ +\x79\x29\xd8\xa3\xd7\xf9\x29\x82\x47\xa2\x9f\xac\xfd\x63\xa7\x9a\ +\xd0\xe7\x6f\x06\x0f\xe7\x84\xc3\x96\xcd\x10\x46\x97\x91\x92\xfe\ +\x6e\x5f\x57\x02\xd7\xae\xc8\x8f\xf5\xc4\x68\xcf\x8c\xc4\xf7\xd2\ +\xb0\x9a\x56\x97\x66\x80\xcd\xcc\xcf\xaa\x42\x8d\xa8\xe7\x7b\xc6\ +\xfd\xfa\xcf\x0c\x45\x54\xbf\x47\xf5\x5b\x53\xe1\x82\xe6\x41\x2f\ +\x8c\x79\x83\x0c\xb0\xc3\x7c\x3e\x14\x84\x7b\x21\xe0\xf3\xa0\xdf\ +\x6f\x65\x3d\xbc\x1f\xed\x9a\x9a\xaa\x32\x86\x52\x6d\x1b\x10\xf0\ +\x81\xd9\x48\x66\xb0\xe2\xf7\x69\x34\x74\xd7\xae\xb7\xb4\xaf\xb5\ +\x54\x52\x05\xc3\xaa\xb0\x7a\x0a\x00\xe0\xf3\xda\x1b\xd4\xfb\xeb\ +\xd7\x6d\x64\x56\x31\x55\x8a\x42\xa5\xea\xe1\xd7\x18\x8d\x8e\x4f\ +\x32\x10\x90\xc8\x27\x8b\x9f\x7c\xfc\x63\xd6\x75\x12\xf3\x79\xf8\ +\x68\x7d\x21\x6c\x5c\x94\x0d\xee\x40\x58\xa4\x20\x1d\x23\x0a\x52\ +\xdc\x0f\x4a\xe7\x74\x3f\x28\x92\x20\x08\xb3\xae\x90\x3f\xac\x78\ +\xb6\xea\xb9\x61\xf1\xb9\xf2\x6f\x4b\xf7\x09\x07\x0f\x5c\x59\x0e\ +\x15\xf9\x0e\x06\x58\x9f\xc9\x01\xc7\xb1\x0e\x11\x64\x76\x4f\x7f\ +\x3f\x53\x07\xc3\xa3\x13\x70\xf4\x44\xb3\x61\x3b\xb8\xdd\x53\x10\ +\x09\x8b\xef\x7b\xff\x03\x0f\x42\x7e\xbe\xee\x80\xd3\xa3\xa9\x26\ +\x01\x96\x48\x11\xab\x38\xdd\x5f\x54\x22\x46\x81\x69\xc0\xc4\x61\ +\x30\x8c\x4a\x09\x1a\x34\x62\x17\x0c\x85\xe0\xc5\x37\x76\xb3\xeb\ +\x0f\xad\x6b\x60\xc2\x9c\xc3\x4c\x7d\x62\xfc\x95\xb5\x39\x62\x6f\ +\x8b\x08\xf1\x47\xd5\x3d\x88\xbf\x8f\x74\x79\x55\x26\xa4\x59\x66\ +\xd7\x4c\xc7\x7b\x3d\xd0\x31\xe6\xd3\xfc\x46\x24\xfe\x1d\x14\x12\ +\x88\x3a\xf1\xb2\xe2\x0c\x38\x35\xe0\x01\x2f\xea\x75\x3f\x9f\x06\ +\x61\x64\x4f\x4e\x78\x08\xbc\x68\xd4\x65\xbb\x5c\x08\xf2\x51\xa8\ +\x2c\x2d\x64\x52\x21\xce\xfc\x94\xd2\x8e\x6d\x4c\x02\x98\x98\xd4\ +\x30\x90\x02\x3f\x22\x2f\x32\x55\x24\xc0\x83\xda\x1b\x39\xb9\xf9\ +\xb0\xb2\x7e\x9d\xd4\xfb\x2d\x90\x95\x99\xc1\xc4\x7b\x1c\x61\x83\ +\x4e\xba\x3d\xcc\xfa\x3d\x70\xfc\x04\x4c\x7a\x50\xec\x9a\x4b\x61\ +\xc8\x5a\xc4\x98\x5f\x96\xeb\x80\x4d\x35\xd9\x52\x4f\x96\x7b\x62\ +\x44\x73\x8d\x14\x92\xee\x85\xc2\x22\xb1\xf3\x18\xcd\x41\x00\xa0\ +\x04\x10\x62\xcf\x0d\x2a\x9e\xab\xfd\x6d\xcd\xbd\x00\xfe\xd8\x2d\ +\x28\xb1\xac\x56\x51\x75\x75\xda\x16\xc1\xa8\x29\x87\x8d\x5d\x8c\ +\x8c\x8f\x8b\x71\x8d\x23\x27\xf4\xdb\x03\x69\x92\x49\x81\x30\x7b\ +\xe7\x4f\xfe\xd9\x5d\xe0\x70\xc4\xd9\x0c\xe4\x07\xdf\x95\x4a\x2a\ +\xe0\x53\x71\x7e\xff\xf6\xeb\x58\x9e\x3e\x55\x96\xac\x5f\x60\x13\ +\x2d\x22\x71\x44\x89\x19\x54\x69\xb2\xfe\x0f\x7d\x78\x1a\x02\x68\ +\x45\x37\xdb\x57\xb0\x86\xb3\xd9\x4c\xb0\x6d\x49\x2e\xf8\x90\x09\ +\x53\xd8\xc0\x53\x7a\xc7\x90\xce\x7d\x9d\xef\x44\xe6\x02\x80\x88\ +\xe6\x77\x66\xf2\xdb\xd2\xd1\x6a\xe1\x61\x6b\x9d\x28\xc1\x48\x85\ +\x9d\xb2\xaf\x46\x49\xc0\x43\xff\xf0\x30\xcb\x4b\xe8\x1f\x1c\x41\ +\x9b\x67\x48\xb7\x4d\xe8\x73\xf7\x94\x8f\xb5\x1d\xb9\xce\x77\xdc\ +\xf9\x89\x69\x3b\x5d\x32\x01\x70\xa5\x76\xb4\x8f\x06\x48\x36\x5e\ +\xb1\x4d\x4a\xa0\x00\xec\xfd\x2e\x08\xe3\xb9\x1e\xf9\xfc\x41\x96\ +\xdb\xff\xee\xc1\xa3\xec\xfb\x2d\xb6\x65\x10\x32\x59\x29\x3a\x02\ +\x1b\xaa\xb2\x41\xc0\x07\x78\xb0\x51\x3d\xd8\xfb\x3c\xc1\x88\x74\ +\x3e\x0d\x85\x35\x47\x92\x00\x30\x7b\x04\x90\x48\x57\x3e\x43\x4d\ +\x82\xfe\xfd\xa0\xf4\xae\x78\x5e\x98\x69\x67\x12\x8c\x40\xe0\x35\ +\xa7\x43\x07\x4a\x02\x92\x78\x83\x23\x23\xe2\x50\xdf\x87\x4d\x86\ +\xed\x32\x81\x92\x50\xb6\x0b\xee\xbe\xe7\x5e\xbd\xd7\xa3\x45\x30\ +\xa2\xeb\x13\x98\x93\x08\x80\xdb\xe2\x06\x7c\xd0\xe7\xcf\x70\x65\ +\xb1\x97\xcf\x74\x65\x30\x40\xe8\x89\x60\x42\x3a\x01\x64\x68\x64\ +\x94\xb9\x7c\x53\xbc\x03\xfa\xec\xe5\xac\xf7\x53\x2c\x3f\xcf\x65\ +\x65\x3d\x4a\xca\x0e\x15\x6d\xe5\xe8\xb9\x74\x94\x5d\x3e\x4e\x50\ +\xbb\x83\x9c\xa0\x72\x11\xe7\x20\x00\x98\x28\x9f\x92\xe3\xfe\x82\ +\xc6\xfd\x13\x94\xae\xa1\x74\xad\xba\x2f\x9e\xaf\x44\xef\xa3\x6f\ +\xd2\x0f\x21\x7c\x4e\xa7\x7d\x31\x94\x05\xda\x60\x64\x62\x02\xa5\ +\x62\x0e\x0c\x8f\x4d\x30\x49\x50\x90\x97\x13\xff\xdb\xc1\x10\x93\ +\x8e\x34\x4e\x40\x93\x5c\x2b\xab\xaa\xf4\xe6\x22\xd2\x48\xeb\x4f\ +\x92\x2d\x01\xe2\x86\x7b\x2f\xdb\x70\x79\x34\xa7\x2e\xdb\x95\x8e\ +\xc7\x88\x2e\x51\x56\x2e\xe9\xfe\x7d\x68\xf5\xb3\x11\x8f\xb4\x3a\ +\x10\x4c\x26\xa6\x3a\x6a\x8b\xd2\xd1\x88\x12\x90\x22\xb1\x63\x98\ +\x48\xd0\x1c\xe5\x73\xe5\xb5\xe2\x5e\x44\xbc\x9e\x9b\x0a\x10\x14\ +\xcf\x96\x9e\x1f\xd2\xf9\xbd\x90\xe6\x9d\x14\xef\x4c\x12\xac\x3a\ +\xcf\xc9\x40\x1d\x32\x5b\x11\x04\x8b\x58\xc7\x18\x1e\x1b\x63\x58\ +\x6d\x6e\xed\x34\x6c\x9f\x49\x85\x14\xb8\xf5\xd6\xdb\x12\x76\xbe\ +\x64\x01\xa0\x12\x74\xd6\xe0\x59\xbe\x6a\x2d\x7b\x69\x8a\x6d\x3b\ +\x9d\x69\xba\xee\x4e\x44\xe2\x08\x8d\xef\x9f\x3a\xd3\x0e\x3e\xde\ +\x0e\xfd\x52\xef\xcf\xcf\xb4\x31\xa9\x11\xcf\x70\x05\x29\x99\x13\ +\x89\xa8\xef\x61\xa7\xd5\x7e\x67\x2e\x12\x80\xa2\xbb\xb1\x67\x6a\ +\x8f\x11\xfd\x77\x51\xbe\x13\xdd\x47\x20\x14\x62\x7d\x2c\x34\x56\ +\x81\x75\xeb\x4a\xab\x61\xb6\xc0\x28\x1a\x83\x24\x5b\x7a\x06\x86\ +\xc1\xeb\xf5\xeb\xb6\x11\xe5\x31\xca\x99\xca\xd7\x5c\x7b\x9d\x91\ +\x1a\x30\x25\x53\x05\x6c\xd1\xde\x28\x2e\xab\x80\x74\x34\x5c\x98\ +\x01\xc3\x92\x3c\x38\x5d\xf1\xcf\x66\xdd\x62\x83\x7c\xd8\xd4\xc2\ +\xbe\xdb\x93\x56\x89\xbd\x9f\x67\x62\x7d\xd8\x17\x82\x63\xfd\x6e\ +\x96\xb4\x91\x6e\x37\x81\xd3\x66\x21\x93\x40\x12\xff\x32\x29\x44\ +\x3e\xa7\x89\x00\xca\xf7\x84\xb3\x53\x01\x41\xb2\x51\x64\xd1\xa1\ +\x14\xf5\x4a\x35\xa0\x52\x01\xca\xfb\xca\x23\x82\xc0\x65\x87\xae\ +\x51\x2f\x1b\xcb\x18\xb0\x95\x42\xb1\xbf\x13\xdc\x1e\x0f\x0b\x13\ +\xd3\x90\x77\x6d\x75\xb9\x8e\x8a\x8c\xb0\x54\x76\xca\x23\xbc\x6c\ +\xed\x3a\x54\xab\x2e\xed\xfa\x04\xe9\xd2\xb8\xcb\xfb\xc9\x02\xc0\ +\xe6\x38\xfd\x5f\xb7\x4c\x0a\xba\x88\x89\x94\x91\x48\xc4\x30\xec\ +\x29\x20\x00\x3e\x68\x14\x07\xb7\xfa\x1c\x95\xac\x87\x10\x51\x1e\ +\xce\x98\x3f\x04\x63\xe8\x52\x81\x9b\xee\x79\x21\xcd\x4a\x40\x30\ +\xb3\x51\x3f\x3a\x8f\x46\xf5\x64\x9b\x80\x93\x1a\x9c\xce\x05\x41\ +\x6d\x37\x08\x73\x05\x00\x80\x4f\x4f\xb7\x83\x86\xd9\x33\x00\x80\ +\xcb\x61\x01\x6e\x02\x7b\x34\x36\x47\x2f\xd6\x95\x00\x30\x36\x39\ +\x01\x99\x19\x19\xd0\xd3\x37\x08\x35\x95\xfa\xeb\x4d\x91\x14\xb0\ +\x62\x07\x40\x5d\x02\x97\x5f\x7e\x05\xbc\xfe\xda\x4e\xbd\x4e\x98\ +\x3a\x00\xa8\xac\xa9\x8b\x46\xdd\x28\xef\x4d\xd0\x51\xbe\xd4\xf3\ +\x49\xc4\x8f\x90\x11\x34\x34\x02\xe3\x96\x6c\xf0\x59\x9c\x22\xd3\ +\xd8\x3c\x6f\x4e\x54\x6a\x1c\x27\x5d\x4b\x22\xdd\x1b\x42\xc5\x1c\ +\x62\xf7\x4d\x68\x59\xa7\x51\x82\x25\xba\x5b\x76\x8b\x09\x89\x97\ +\xa6\x64\x29\xa7\x6c\x0a\x33\x19\xd0\x4b\x2c\x01\x8c\x98\x0c\x89\ +\x18\xae\x73\x64\xed\x61\x06\x37\x4a\xb7\x31\x7b\x3e\xf8\x79\x1b\ +\xcb\x6a\x62\x51\x50\x74\x81\x03\x81\x20\x0b\xfa\x68\x0b\x4d\x70\ +\xc9\x12\xc4\x11\xcf\x0d\x1b\x36\xea\x01\x60\x73\x32\x55\xc0\xca\ +\xb8\xf0\x6f\x79\x35\xab\x14\x8b\x62\x59\x2c\xaa\xd4\x6c\xb9\x58\ +\x78\x13\xcb\x9e\x69\xe9\xe8\x62\xd7\xc3\xb6\x42\xa9\xf7\x2b\x99\ +\xae\xb8\x56\x9d\x8b\x47\x34\x1f\xc5\xc0\x0c\x8a\x49\xa0\xdc\x3d\ +\x8a\x1b\xa0\x54\xb1\x21\x10\x48\x3a\x58\x11\x20\x94\x18\x12\xd5\ +\x0b\x73\x40\x00\xe5\x66\xfb\xf5\x18\x3e\x53\xe6\x47\x04\xd5\x3d\ +\xbb\xd5\xcc\x42\xc6\x54\x46\xb0\xce\xc5\xde\x0e\xb4\x81\xbc\x90\ +\xee\x70\xa0\x6b\x38\xa6\x9b\x1d\x45\xd1\x43\xb9\x43\x2d\x5b\xbe\ +\x42\xef\x35\x97\x26\x0b\x00\x94\xe1\xa0\x8a\xed\xda\xd3\xd2\x20\ +\x2b\x37\x8f\xd5\x97\x16\x69\x30\x8a\xbf\x9b\xb1\xf7\x13\x00\xda\ +\xbb\x7a\x44\x00\x38\x8a\x12\x03\x80\x8f\x31\x5e\x75\x1e\x25\xf1\ +\x1a\x9b\x8a\x65\xef\x80\xe4\x3a\x92\x11\x6a\x25\x50\x98\x09\x30\ +\xc2\x9c\x00\x10\x00\x25\xc3\x61\xf6\x3d\x5f\x71\x6e\x46\x70\x52\ +\x50\x88\x2e\x46\x51\x0a\x10\x00\x68\x36\x13\xcd\x35\xa0\x99\x4c\ +\x85\x3a\xee\x60\x98\x42\xcc\x28\x1d\x68\x62\xc9\xaa\xd5\xab\x8d\ +\x00\x60\x4a\x06\x00\x16\x6b\x6f\xe4\x15\x14\x47\x99\x4e\xb1\x6c\ +\x43\x00\xa0\x74\x20\xbe\x75\xf7\x0f\xb2\x81\x12\x8f\x2d\x2b\x06\ +\x80\x28\xf3\xd5\x20\xa8\xc9\x49\x83\x2d\xe5\x2e\x35\xf3\x95\x36\ +\x40\xd4\x08\xe4\xe2\x8d\x42\x2c\x0e\xf3\xec\x1d\xa5\x75\x85\x4e\ +\x71\x49\x50\x3d\xfd\x0f\x9a\x58\x80\x4e\x3c\xe0\xd9\x0f\x07\xe3\ +\x00\x43\x93\x46\x43\x28\xb5\xc6\xd3\xf2\x00\x46\xc5\xe9\x6c\xf4\ +\xfa\x13\x6e\x8f\x61\x7b\xf9\x83\x21\x26\x4d\xc9\x08\xcc\xce\xce\ +\xd6\xae\x5e\x46\xbc\xaf\x4a\x06\x00\xe2\x72\xfd\x73\xf3\x0b\xa3\ +\x95\xa0\xb1\xff\x88\x9e\xfe\xa7\x49\x9f\xe8\xeb\x93\x68\x23\x1b\ +\xc0\x63\xc9\x84\x88\x34\xdc\x1b\xd7\xeb\x15\xbd\x7d\x4b\x85\x0b\ +\x9e\xba\xb9\xf6\x82\x56\xf0\xbe\x25\xb9\x8c\xe6\x5a\x9e\x21\x00\ +\x68\x02\x46\xbc\x99\x63\x06\x9d\xd7\x9a\x01\x41\xde\xc2\xda\x81\ +\xd2\xc0\x3c\x1e\x9f\x6e\x7b\xb1\xa0\x10\x4a\x00\x81\x0d\xa4\x71\ +\x50\x59\x59\xa5\xb7\x7c\x5d\x19\x9f\x0a\x00\x70\x65\x65\x47\x7d\ +\x58\x32\x68\xf4\x7c\x5b\x96\xf7\x86\x44\xf3\xf6\x58\x1c\xc0\xea\ +\x8a\x31\x5b\x26\x93\xf6\x5a\x16\x9d\xf3\xab\x04\xb5\x24\x80\xaa\ +\x5e\x53\x96\x0c\x16\x0d\x8d\xa0\x6b\x40\x23\xa1\x41\xec\xe9\x7a\ +\x6d\xa6\xbc\x5f\x5a\x56\xae\xf7\x53\x55\xc9\x68\x9d\xb8\x55\xbc\ +\x68\x31\x07\x39\x70\x61\x36\xf1\xba\x95\x21\xf7\x8f\xf4\x3f\x0d\ +\xfe\x30\x23\xc7\x92\x1e\x0f\x00\x15\xf3\x4d\x31\x49\x30\xcf\x4a\ +\x08\x5f\x3a\xc4\x89\xb6\x04\x23\x9a\x60\xaa\x90\x6e\xcc\xf3\x01\ +\x71\xd6\x32\x49\x46\xd9\xe0\x8b\x03\x40\x28\x06\x80\xec\x1c\xdd\ +\x0c\xe3\xac\x64\xa8\x80\x74\xed\x8d\x34\x47\x7a\x34\x06\x40\x15\ +\x22\x64\x6b\x0b\x2f\x4d\xff\xa6\x00\x07\xd3\x6f\x16\xbb\x9a\xe1\ +\xb2\x2b\xc8\xf3\xf1\x46\xdf\x3c\x2b\x61\x6d\x60\x0a\x14\x12\x80\ +\x18\x6f\x16\xa7\xc2\x51\xac\x84\x2d\x32\x15\xa4\x91\xd1\xf8\xf9\ +\x0c\x22\x00\x44\x15\x92\x9d\x9d\x93\x32\x00\xd0\x8d\xee\x29\x0d\ +\x19\x3d\xa3\x86\x52\xa0\x29\x06\x30\x2a\x49\x80\x30\xea\xc1\x78\ +\x00\xf0\x8a\x6b\x85\x71\x38\x2f\x01\xa0\x8d\x56\x0a\xd1\xba\xb0\ +\x51\x4f\x89\xc1\xd4\x29\x82\xc1\xb0\x6e\x9b\x89\xf6\xa3\xc0\x6c\ +\x07\xa3\x92\x0c\x00\x54\xc5\xa9\x00\x92\x00\x20\x5b\xbb\x26\xdd\ +\xca\xb0\xf9\x80\xd2\xb2\x29\xaa\x1e\xa1\x02\x81\xce\xf9\x3c\x54\ +\x01\x14\xe9\x64\xb1\x00\x4e\x1a\xad\x89\x28\x00\xad\xf1\x52\xa8\ +\x5d\x42\x61\x7d\x00\x90\x8a\x10\xa4\xe8\xa6\xc9\x20\xa1\x36\x25\ +\x24\x00\x27\x0f\xfb\x72\x82\xa1\x45\x2b\x57\x96\x53\x8a\xc7\x28\ +\xf3\xf9\x78\x2f\x40\x09\x82\xf9\x56\x94\xef\x1c\x6d\x0e\x86\x04\ +\x5d\x00\x80\xa0\xdf\x6e\x42\x24\x26\x59\x0d\x3d\xeb\x24\x54\xaf\ +\x4b\x7b\x83\x56\xcc\x94\x6d\x00\xb2\x5c\xf5\x66\xfe\x30\x43\x98\ +\xe7\xd4\x63\xfa\x51\xe6\xeb\xc4\x02\x78\x4e\x3d\xee\x3f\x1f\x01\ +\xc0\xc5\x78\xae\x02\x81\xd4\x06\xb2\x3c\x94\x57\x21\xd1\x1d\x37\ +\x91\x6c\x80\x50\x38\xa4\x6b\x6f\x26\x03\x00\x21\x3d\x65\x25\x57\ +\x20\x1c\x09\x83\x49\xe0\x75\x0d\x1a\xca\x00\xca\x76\x65\x48\x4d\ +\x11\x51\xeb\x7c\x3d\x00\xc8\x00\x99\xaf\x00\xd0\xed\xb5\x3c\xb6\ +\x8f\xd8\x84\x6c\x72\xa8\xb4\xae\xb1\xae\x0d\x10\xb5\xad\x38\x63\ +\x11\x90\x84\xea\xf9\xe2\x6e\xf8\xa6\xa2\x15\x20\x7d\x66\xd6\x11\ +\x4c\x64\xf1\x92\x04\x90\x33\x84\x6d\x61\x9f\x82\xf1\xa0\x6f\x07\ +\xf0\xf3\x58\x02\xa8\x7a\xbf\xa0\x92\xfb\x96\x90\x4f\xea\xe1\xa6\ +\xe8\x5a\x09\x11\x03\xbb\x49\x6e\xd7\x09\xfd\xe5\xea\xdd\xc9\x00\ +\x40\x9f\xf6\xc6\x14\x9b\x19\x2b\x56\x94\x2c\x5a\x9b\x35\xbe\x32\ +\x7e\xbf\xe8\xf3\xd2\x0c\x18\x86\xfe\xc0\xa4\x9a\xf1\x89\x8c\xc1\ +\xf9\x08\x00\x41\x4f\x09\x8a\x82\x3f\x2d\xe0\x96\x24\x40\x6c\x59\ +\x3c\x7d\xcf\x29\x66\x50\x8f\x48\xf9\x84\x9a\x32\x94\x12\x00\x98\ +\x18\x1f\x8d\x8a\x2a\x7f\x20\xa0\x3b\x0f\x80\xa6\x7f\x11\xd2\xe5\ +\x81\x0f\xa7\x6f\x42\x31\xe2\xc7\x19\x4b\x00\x1e\x2e\x12\x00\xc4\ +\x80\xe0\xf0\x4f\xb0\xde\xcf\x96\xa6\x93\x86\xc8\xf5\x8c\x40\x5a\ +\xf0\x42\x06\x40\x4f\x77\x97\xae\x3d\x96\x12\x46\xe0\xe8\xd0\x60\ +\xf4\x45\x7d\xd2\xa2\x8c\x71\x36\x00\x1a\x87\x94\xe9\x42\x53\xc4\ +\xb2\xd0\x0e\x08\xb9\xc7\xc5\x1c\x0e\x9e\x53\x8f\xf0\x69\xa4\x41\ +\x9f\x3f\x0c\xbb\xfa\x3d\x0a\x7f\x5a\x69\x42\x2b\x8f\x3a\xf7\xb1\ +\x5c\x9e\x69\x03\xbb\x69\x76\x28\x3a\xe9\x0e\x40\x1f\x0d\xdf\x0a\ +\x9a\x1e\x2c\xe8\x74\x68\xd5\x40\x91\xcc\x39\x4e\x63\xfc\xc5\x8a\ +\xd5\xef\x01\x6b\xc8\x0f\xce\x74\x27\xab\x4a\xa2\xc1\x33\x1a\x08\ +\x92\x3f\xeb\x68\x6f\x4f\x19\x00\x34\x6b\x6f\x0c\x0f\xf6\x45\xe3\ +\x00\x46\x00\x60\x0a\x6b\xca\x8b\xcc\x4f\x87\xaa\xb2\x62\x18\x3b\ +\xd1\x88\x52\x60\x14\xdc\x19\x79\x09\x43\xc2\xaf\xf5\x79\xe0\xb5\ +\x81\xa9\x69\x86\x8c\x95\x43\xc5\xca\x23\xc0\x99\xad\xe5\x50\x9d\ +\x36\x3b\x00\x7c\xa7\x75\x0c\x9e\xee\x76\x1b\x66\xf9\x30\xe6\x8a\ +\xbb\x4b\xc4\xc6\xfe\xe9\x9e\x7c\xad\x75\x5d\x85\x58\x54\x30\xd3\ +\x33\xc4\x6e\xb9\xa4\xd5\x44\xd2\xec\x09\x00\xc0\x54\x03\xaa\xd8\ +\x29\x0f\x0c\x0f\x0f\xe9\x7d\xa5\x8d\x4f\x12\x00\x54\x9e\x80\x17\ +\x5f\xd0\x43\x76\x00\xfe\x9b\xf2\xfa\x0d\x67\xbe\x4c\xb8\xa7\xd8\ +\x6a\x9c\x4b\x17\x55\xb2\xbf\xcb\x19\xef\x4e\x3c\x1e\xa0\xf5\x10\ +\x54\x83\x46\xbc\x7a\xf0\xc8\xa4\x47\x3c\xcc\xc9\x8a\x34\x7a\x9e\ +\xee\x98\x85\x81\x0d\x63\x20\xd5\xb2\x27\xc4\x5c\x08\x92\x82\x22\ +\x00\x6c\xba\x6d\x45\xff\x68\x64\x95\xc0\xd1\xd4\x78\x5a\xef\x2d\ +\x69\x29\x1e\x7f\x32\x00\x40\x43\xe5\x1f\x68\x6f\x76\xb6\x36\x4b\ +\x03\x18\x41\xb6\xfc\x89\xde\xe0\xc6\xf8\x84\x9b\x55\x7a\xd5\x12\ +\x31\xa5\x20\x77\xac\x5b\x57\xec\x1b\x0f\x10\xcd\xe4\x3e\xaf\x3e\ +\x72\x70\x16\x00\xd0\x3c\x4b\x0f\x78\xb3\xa4\xdc\xd1\x6e\x16\x11\ +\xcd\xc9\x74\xb1\x23\xb9\x82\x7a\x6d\x25\xce\x1f\x14\x81\x40\x5b\ +\xd4\x18\x00\x20\x69\x26\xd2\x01\xed\x8d\x9e\xce\xd6\xe8\xf6\x2a\ +\x24\xea\x75\x01\x30\xe9\x66\xc3\xa0\x25\x85\xf9\x50\x90\x9b\x0d\ +\x99\xe3\xfd\x60\x26\x77\x90\xd3\x46\x06\x13\xf4\x7e\x23\x29\x60\ +\xe2\xf5\x7b\xed\x9c\x42\x9b\x3a\x92\x65\x36\x80\x34\xf0\x6c\x32\ +\xdc\x43\x90\xe6\x77\xb3\x49\x33\x94\x1b\x61\xb3\x59\xa4\xc9\x33\ +\xf1\x6d\x25\x02\x43\x1c\x57\x39\xae\x0f\x80\x03\xc9\x04\x40\x43\ +\x9c\x04\x38\xd3\x18\x9d\xeb\xee\xf6\x78\xd9\x51\x8f\x06\x47\xc7\ +\x98\xe5\x7b\xf9\xda\x55\x40\x4b\x33\x17\xf7\x37\x69\x92\x40\x40\ +\x11\x1b\x80\x99\x49\x04\xbd\x3c\x02\xd3\x59\x04\x91\x54\xcf\x98\ +\xe6\xb7\xa6\x03\xaa\xa2\x4e\x45\xfd\x8d\xec\xf1\xc5\xf9\x79\x4c\ +\x12\xd2\x9a\xc4\x46\xed\xc4\x12\x6b\xa5\xc5\xae\x0f\x1c\xd8\xa7\ +\xf7\x96\xef\x26\x13\x00\x71\x8b\x41\xf5\xf5\x74\x82\x6f\x6a\x8a\ +\x81\x40\x4c\x73\xd2\x9f\xf5\xd2\xd7\x3f\xcc\x00\xf0\x91\x0d\x97\ +\xb1\xbf\x2b\xe9\x39\xa5\xef\x0a\x72\x73\xe8\x75\x4a\xa6\xd1\xd1\ +\x3c\x57\x15\x00\x06\xcf\xe4\xa7\x79\x0f\x0d\x78\x15\x52\x8d\xc7\ +\xba\x17\xf5\x35\xb3\x51\xd1\xa2\xbc\xbc\xa8\xfe\xd7\x6b\x23\xaa\ +\xba\x5d\xca\xad\x6c\x46\xfd\x3f\x32\x3c\xac\x17\x8c\x6b\x48\x26\ +\x00\xc8\x2a\x69\x53\x0f\x5c\x44\xa0\xe5\xf4\xf1\xe8\xe2\xcd\xb1\ +\xd9\x2d\x6a\xa2\x79\x71\x94\xf2\x4c\x4b\xa8\xd5\x2f\xab\x05\xe7\ +\xd4\x38\xe4\x0d\xb6\x19\xc7\x04\x38\x6e\x76\x52\x40\x66\xbc\xcc\ +\xb8\xb9\x4a\x00\x33\x37\x77\x5d\xcf\xc5\x07\xb3\x4a\xba\x4f\x80\ +\x25\x14\x80\xd2\xc2\x02\xb6\xfd\x0d\x89\x78\x79\xee\xa4\x96\xd8\ +\xd2\xb9\x92\x2a\xd8\xb5\xeb\x8f\x46\x12\xd8\x9f\x4c\x00\x50\x89\ +\x4b\x54\x6f\xfc\xe0\x88\xc2\xe0\xf3\x18\x7a\x03\xed\xdd\xfd\xac\ +\x07\xdc\xbc\xfd\x4a\xf6\x77\xd5\x2d\x07\xd4\x63\x01\x3a\x40\x90\ +\x43\xa6\x8c\x4c\x8a\x73\xca\x33\xa0\x6c\x23\xba\x67\xe6\xc4\x73\ +\xf9\x3b\xca\xf4\xf0\xd9\x98\x00\xd1\xbf\xe7\x63\xcf\x94\x9f\xab\ +\xf3\xfb\x5c\xd4\xe0\xd4\x1b\xcc\x12\x7b\x7f\xe5\x99\xc3\xec\xb2\ +\xba\xbc\x94\xd5\x85\xa2\x80\x46\xed\x43\x6b\x09\x45\x24\xfd\xff\ +\xd6\x9b\xaf\x27\x6c\xfb\x64\x02\xe0\xf9\x38\xa7\xb4\xf9\x24\xf8\ +\xbc\x53\x51\x83\x8f\x2d\x76\xa0\x33\x0f\xbe\xa3\xab\x8f\x05\x85\ +\x68\xe1\xa8\xa5\x35\x55\x90\x31\x39\x0c\xf9\x7d\x67\x14\xfa\x3f\ +\x1e\x04\x56\x33\x0f\x0e\xec\x39\x51\xb2\xe0\xb5\x55\x22\x3a\xb7\ +\x98\x58\x06\xb0\x78\xce\x8b\xe7\xb4\x7d\xcb\x1c\x84\x80\x95\xc6\ +\x2c\xe4\xdf\x50\x3e\x53\xfe\x3d\xf9\x5d\xa4\xdf\xa4\xb9\x08\xc6\ +\x11\x4d\x80\xd2\x8e\xe3\x60\x0b\x78\x59\xef\x4f\xc7\xde\x2d\xae\ +\x00\x62\xd2\x6d\x1b\x52\x11\x69\xa4\xff\xf1\x5f\x6b\xeb\x19\xa6\ +\x02\x12\xb5\x7d\x32\x01\xf0\x36\xc5\xa2\x55\xfe\x61\x28\x04\xa7\ +\x8e\x1d\x8c\x6e\xdc\x30\x4e\xb6\x00\xc4\x2f\x0c\x15\xc4\xcf\x5a\ +\xda\xbb\x59\x4c\xe0\xae\x5b\xc4\xc9\x8f\x8b\x4f\xfc\x89\xf5\x94\ +\x68\x10\x27\x3a\x27\x50\x6c\x48\x15\x23\x34\x4c\x56\x9d\x2b\xef\ +\x21\x83\xe6\xa2\x04\x68\xa2\x49\xdc\xb3\xb5\xbf\x67\x55\xdf\x8f\ +\x1b\xc2\x96\xde\xdf\xea\xf7\x42\x55\xe3\x01\x26\x29\x96\xd5\x54\ +\x4b\x3b\x89\x58\x0d\xb7\x22\xcf\xcc\x48\x17\xdd\x3f\x6c\xc3\x97\ +\xfe\xeb\xb7\x7a\xaf\x47\x2e\x41\x4b\x2a\x00\x80\xe2\x01\xcf\x6a\ +\x6f\x1e\xdd\xb7\x27\xea\xbe\x8c\x8c\x4d\x4a\xbb\x6f\xc6\x13\x2d\ +\x02\x4d\xe3\x06\x75\x55\x15\xb0\x75\xc3\x1a\x48\xf3\x4e\x42\xf5\ +\xc9\x06\x4d\x74\x8f\x8b\x36\x24\x4d\x09\x8b\x63\xbc\x4c\x8c\x61\ +\x9c\xe2\x33\x93\x78\xcf\x34\x37\x09\x60\x33\x71\x06\xbf\xa1\x03\ +\x0a\x24\x93\x49\xcb\xf8\x98\x04\xa8\x3b\xb6\x9b\xe9\xfe\x25\xd5\ +\x95\x6c\x61\x69\xb6\xc4\xbc\x89\xd7\x6d\x13\x71\x5d\x05\x27\x6b\ +\x3f\x5a\x2f\xf0\xd5\x97\x5f\xd2\x7b\xbd\xa7\xb4\xf6\x6a\x32\xcb\ +\x53\x71\x61\xe1\x81\x3e\x68\x6f\x39\xc5\x2a\x41\xfb\xf4\xb8\x15\ +\x73\xdd\x95\x44\x12\xe2\xd8\xa9\x16\xa6\x47\x3f\x75\xdb\x8d\x6c\ +\x42\x69\x79\xcb\x11\xc8\x1c\xe9\x51\xeb\x52\xe9\x18\xc1\xa3\x13\ +\x1b\xdd\x89\x8c\x76\x5a\xe4\x73\x0d\x99\xf8\xd8\x77\xa4\x23\x37\ +\x07\x19\x40\x2a\x20\xf6\x0c\x5e\x73\x1e\x4f\x02\xa7\x3f\xb9\xa5\ +\xa0\xab\x11\x0a\x7a\x5a\x58\xdd\x6a\x11\xe8\xe2\xc8\x9f\xc9\x70\ +\xa5\x30\xea\xfd\x72\x5c\xe0\xb5\x3f\xbc\x02\xe3\xe3\x63\x7a\xd6\ +\xff\x33\xa9\x04\x80\x83\x7a\x31\x81\x7d\xbb\x5f\x8f\xfa\xb0\x43\ +\xa3\xe3\x86\x15\x96\x17\x85\xa6\x8a\x3f\x72\xef\xc7\x51\x05\x08\ +\xb0\xa2\x61\x27\x1b\x30\xd1\xc6\xfa\xdd\x68\x15\x51\x2f\x67\x4c\ +\x36\x29\x99\x2e\x31\xcb\xa4\xb8\x56\x7c\x3e\x97\xd1\x64\x1b\xcf\ +\xa9\x9f\x65\x92\x40\x60\xe2\x62\x40\x93\x7e\x97\x24\xc1\x64\x44\ +\x88\x9b\xb2\xe6\x70\x8f\xc2\xd2\x03\x7f\x14\xd7\x0c\xae\x5f\xc9\ +\x18\x6f\x92\x36\xad\xd6\x6b\x0b\x16\x1a\xcf\xcc\x10\x3b\x07\xaa\ +\xd2\x5f\xfe\xec\x3f\xf4\x5e\x8d\x16\x8b\x4c\xb9\x75\x02\xe3\x96\ +\x89\xeb\x6e\x6f\x81\xae\xd6\x26\x56\x19\x5a\x0b\x88\x56\xbf\x32\ +\x02\xc1\xc1\x63\xa7\xd8\xb2\x28\xeb\x57\x2e\x85\x1b\xb7\x5d\x0e\ +\x76\xaf\x1b\x56\xbe\xfb\x0a\x70\xd1\xa9\xde\x22\x51\x32\xf9\x44\ +\x58\x50\x88\x64\x4e\x24\xa5\x0a\x50\x8a\x6e\xe9\xf3\xb9\x34\x10\ +\x01\x20\x2a\xf2\x55\xbf\xc1\x6b\x7e\x83\xc7\x77\x8a\xb0\x77\x8b\ +\x65\x36\xa3\x07\x19\xf0\xc1\xaa\x3d\x2f\x81\x39\x14\x84\x35\xcb\ +\xea\x20\x3b\xd3\x15\x4d\xff\x32\x6a\x07\x1a\x24\xe3\x4d\x26\xd6\ +\x69\xde\x78\xf5\x65\xe8\xd6\x1f\xfe\xfd\xae\x5e\xc8\x22\xd9\xe5\ +\x79\xbd\x11\xc2\x86\xb7\x77\x46\x2b\x47\x52\x80\x16\x83\xd4\x73\ +\x79\x28\x5e\xd0\x70\xe8\x03\xd6\x53\xee\xbb\xed\x26\x58\x59\xb7\ +\x08\xb2\x86\x7a\x60\x05\x81\x00\x04\x55\xaf\x3a\xe3\x0f\xb3\x31\ +\x72\x75\x4f\xd4\xf4\x54\x13\xa7\xba\xe6\xe6\xe8\x05\xa8\x9f\xc3\ +\xa9\x25\x8b\x74\x4d\xef\x42\xef\x14\x03\x2a\xde\x43\xa6\xaf\x7e\ +\xfb\x25\x70\x4e\x8c\x42\x75\x59\x09\xd4\xa1\xee\x97\x33\x7b\x8c\ +\xdc\x3e\x12\xfb\x04\x12\xb1\xf7\x07\xe1\xe7\x4f\xfd\xd4\xc8\xe8\ +\x3e\x18\x97\x33\x90\x02\x00\x60\xc1\x3f\xd0\x2c\x1a\x35\x39\x3e\ +\x0a\x39\x05\xc5\x90\x93\x5f\x18\x4d\x76\xa0\x95\xb1\xf5\x4c\x5f\ +\x5a\x13\x47\xde\x48\x62\x63\xfd\x0a\xd8\x77\xf4\x43\x88\xf4\x74\ +\x81\x73\x6c\x08\x06\x17\xd5\x45\x67\x09\x45\x90\xc6\xb1\x91\x6a\ +\xd2\xcc\xcc\x50\xb3\xe0\xb5\x85\x1d\x79\xe9\x48\xd7\xbc\x78\xe4\ +\xc5\xfb\x2d\xd8\x43\xf7\x04\xc2\xb0\x1b\x19\xb5\x9b\x8e\x81\x88\ +\x74\x94\x29\x24\x1e\xe9\x73\x1f\x51\x08\xce\x84\x22\xcc\xc2\xb5\ +\x50\xbe\x1e\x07\x22\xf1\xd2\xb9\x74\x9f\xfe\xbd\xef\x0e\x8a\xd3\ +\xd4\xa5\xd1\x5c\x53\x30\x00\xf5\xaf\x3d\x0f\x59\x83\xdd\x50\x94\ +\x97\x0b\x5b\xd7\x5f\x26\xa6\x7d\xa3\x48\x67\x0b\x66\x18\x98\xfe\ +\x94\x24\x43\x71\x01\x2a\xbf\xfd\xf5\x2f\xe0\xed\xb7\xde\xd0\x6b\ +\xe7\x07\x91\xda\x53\x11\x00\x20\x8d\x0e\xde\x43\x6a\x4c\x79\xb3\ +\xbf\xbb\x1d\x56\xac\xdd\xcc\x2c\x5f\xb2\xf8\xd3\xd2\x6c\xcc\xcf\ +\xd5\x2b\xb4\x60\x04\x2d\x9b\x9e\x97\x93\x05\x9b\xd6\xac\x80\x43\ +\x1f\x9c\x96\x40\x30\x8c\x20\x58\x12\x9d\x27\xe8\x25\x25\x88\x80\ +\x5a\x64\x37\x43\x9a\x89\x8b\x31\x9e\x81\x80\x8f\x9d\x4b\xe0\x20\ +\x64\x92\x29\x35\x26\x28\x8e\x2a\x12\x60\x2c\xa2\x38\x17\x20\xc6\ +\xfc\xe8\x51\x06\x82\x78\x44\x4d\x04\xbb\x27\x03\x30\xa4\xd8\x41\ +\xc4\x84\xf5\xab\x7f\xf5\x39\xc8\x1a\xe8\x66\xfb\x1f\x5e\x7d\xf9\ +\x7a\x56\x6f\x52\x6f\x04\x00\xa3\x42\x51\xbf\x3c\x29\x4d\x6e\x68\ +\x70\x00\xbe\xf5\xf5\xaf\x41\x30\x18\xd0\xeb\xfd\x7f\xab\xf7\xf7\ +\xa9\x02\x00\xc2\xf2\x19\x09\x04\xd1\x12\xf0\xfb\x98\x48\xab\xa8\ +\x59\x22\x65\x0b\x05\x59\x20\x44\x5e\xbb\x47\x4b\x9d\x3d\x03\x6c\ +\x1f\x21\xea\x11\x51\x10\x74\x77\x42\x76\x4f\x07\x0c\x57\xd5\x40\ +\xd8\x6e\x13\x27\x57\xe2\x03\xda\xb1\xf1\x8b\xad\x66\xc8\x35\xf3\ +\x0a\x49\x00\x6a\xa9\x10\x95\x04\x12\x71\x12\x69\xef\xf1\x10\xfb\ +\x4c\xc1\x68\x8b\x56\x0a\xe0\xf5\x60\x08\x2d\x74\x64\xfe\x58\x48\ +\x88\x66\x09\xa5\x8d\x8d\xc2\x65\x2f\xfe\x02\x5c\xc3\x03\xac\xe7\ +\x5f\x77\xe5\x26\x96\xcc\x11\xc0\xfa\x52\x2a\x9c\x91\xcf\x4f\x00\ +\x29\x2d\x2a\x60\xc3\xc2\x54\xfe\xe1\x3b\xdf\x80\x96\xe6\x46\x6d\ +\xdb\x12\x7a\x3e\x0e\x3a\x4b\xc5\xa7\x0a\x00\x28\xbb\xe3\x2a\xa9\ +\xf7\xd3\xb2\x25\xe9\x6a\x29\xd0\x09\x65\xd5\x8b\x21\x23\x33\x9b\ +\x89\x41\xb2\x05\x68\x10\x44\x17\x45\xd8\x03\xbb\xfa\x06\x20\x2b\ +\x23\x83\x6d\xce\xb8\x6d\xd3\x5a\x68\x6e\xef\x84\x89\xf6\x76\x28\ +\x68\x3a\x09\x13\x45\xa5\xe0\xcf\x14\xd7\x14\xa0\x3e\x72\x3a\x18\ +\x06\x2f\x36\x5e\x05\xad\x23\xc4\x7a\xbf\x42\x15\xc8\x60\x50\x31\ +\x9b\x57\x03\x21\x8e\xe9\x1a\x00\x70\x31\x49\x40\x6b\x07\xee\x99\ +\x0a\xc1\x1e\x4f\x90\x9d\xcb\x62\x3f\xaf\xf9\x34\xd4\xbf\xf4\x6b\ +\xb0\x7b\xdc\x50\x53\x59\x06\xd7\x5e\xb1\x11\x4c\x08\x4a\xca\x8c\ +\xa2\x95\xd0\x12\x8d\x38\x93\xca\xa3\x5d\xc4\xe8\xe2\xad\x37\x77\ +\xc2\xb3\xcf\x3c\xa5\xf7\xd5\x7f\x45\xfa\xa9\xe1\x73\x92\xc8\x78\ +\xda\x1d\x8c\x56\x0a\x5f\x3f\xdd\x17\x89\xf9\x77\x7f\xee\xcb\x60\ +\xb3\x8b\x5b\xb1\xe6\x66\xbb\xd8\xde\x3a\xc6\x63\x31\x1c\x6c\xdd\ +\x58\x0f\x55\xe5\xc5\x6c\xab\xb8\x9f\xbf\xf0\x2a\xec\xdc\xbd\x97\ +\xc5\x02\x3a\xd7\x6e\x82\xd6\x8f\x6c\x87\x08\x25\x4c\x48\x83\x35\ +\xd4\xe0\xf5\x68\x17\x6c\x40\xb5\x50\x68\xe6\x35\xab\x89\x68\x8e\ +\xfa\xc8\x33\x5c\xed\xa3\x1f\x7b\xfa\x41\x6f\x10\x0e\x7b\xc5\x9c\ +\x46\x26\xff\x51\x05\x99\xa7\xbc\xb0\x18\x99\x56\x72\xe2\x18\xab\ +\xd3\x26\x74\xf5\x28\xd1\x45\x5c\xe7\xcf\xcb\x3c\x9f\x44\x85\xda\ +\x80\x36\xd1\xa0\xbf\x1d\xec\xef\x83\x2f\x7c\xf6\x41\xf0\x78\xdc\ +\xda\xaf\x51\xa4\x95\xb2\x67\xc6\x8d\x9e\x93\x0c\x09\x40\x3b\x3e\ +\xbd\x0c\xe2\xd2\xe5\x25\x33\xf9\x83\xba\x65\x2b\xe1\x8a\xad\xdb\ +\xd1\xe2\xf7\x47\x55\x81\x0d\xc5\xb7\xc9\x60\xef\x20\x8a\x83\xb7\ +\x75\x8b\xc9\xc7\x25\x85\x79\xe8\x4a\xd5\x22\x18\x4a\xe0\xf8\xa9\ +\x66\x70\xb4\xb7\x42\xe1\x89\xe3\xe0\x77\xb9\x60\xaa\xa0\x80\xd9\ +\x05\x94\x58\xda\x4b\x2e\x65\x30\x02\xa7\x69\x8d\x3e\xfc\x3b\x3b\ +\xed\xf4\x89\x00\xb1\x72\x5a\x71\xaf\xe9\xfd\x1a\xfd\x4e\x6f\xd4\ +\x8b\x7c\x3e\x8c\xd2\x65\x27\x32\x9d\x8c\xc2\x1e\xc5\xa2\xd3\x1c\ +\x82\xa0\xf8\xe8\x21\x58\xfd\xbb\x67\x21\xab\xb7\x9b\x0d\xdc\xdc\ +\xbc\x7d\x0b\xeb\xfd\x6c\x09\x98\xf1\x49\x96\x10\x93\xa8\xb8\xf0\ +\x6f\x64\xbd\x1f\x40\x15\xf1\x37\x4f\x7c\x09\xfa\xfb\x7a\xf5\xbe\ +\x7a\x3f\x88\x9b\x71\x40\xaa\x48\x00\x52\xe6\x6f\x82\xce\x22\x11\ +\x46\x65\xe5\x9a\xf5\xf0\xe9\x3f\x7f\x8c\xb9\x39\xb4\x32\x48\xbb\ +\xc4\x58\x0a\x8a\xe4\x65\x67\xb1\xfd\x04\x12\x15\xda\x6c\xe2\x23\ +\x9b\xd6\x30\x51\x49\x03\x4c\xcf\xbc\xb0\x13\xf6\xec\x17\x33\x64\ +\x26\x0b\x8b\xa0\x75\xdb\x76\x18\x5a\xb1\x3c\x96\x1d\xa4\x18\xbb\ +\xa7\xc5\xa2\x8a\x50\x22\x14\xd0\x8e\x1c\x78\x9e\x21\x31\x5f\xd9\ +\x6a\x41\x04\x0c\x05\x72\x06\x91\x06\x90\xd1\x7d\x48\x21\xd6\xcb\ +\xa5\xde\x2e\xf5\x78\x0e\x8d\xb9\xc2\xc3\x47\xa0\x6a\xcf\x6e\x70\ +\x8c\x8e\xb0\x9e\xbb\x76\xc5\x12\x58\xbf\x6a\x39\xcb\xee\x21\x63\ +\x8f\x0c\x59\x5a\xd5\x23\x51\xa1\x94\xf9\xe2\x82\x3c\x71\xc1\x0c\ +\x7c\x8f\x1f\x7e\xf7\xdb\xb0\xeb\x8d\x9d\x7a\x5f\x35\xdc\x27\x28\ +\x59\x00\x58\x22\x59\xa3\x45\x73\x61\x7e\x26\x5a\xf8\xb4\x80\x24\ +\x85\x7f\xdb\xbb\x44\x10\x50\x74\x8c\xc4\xe0\x74\x5b\xc5\x53\x76\ +\x0c\xdb\xac\xb9\xb8\x80\xb9\x94\x8d\x6d\x1d\xf0\xec\xef\xdf\x80\ +\x53\x2d\x62\x4a\x82\x27\x2f\x0f\x7a\xd6\xaf\x87\xde\xf5\xeb\x20\ +\x44\x83\x29\xda\xc4\x10\x6d\x1e\x5f\x54\x15\x48\x59\xbc\x61\xe5\ +\x51\xcd\x78\xfb\xd0\x30\x14\xed\x3f\x08\x25\x07\x0f\x80\x5d\x9a\ +\x9d\x43\xbd\x7d\xcb\xba\x7a\x96\xd8\x29\xb0\x15\xcf\xdd\x30\x30\ +\x3c\x66\xb8\x36\xa2\x5c\x28\x07\x80\x24\x1a\x79\x42\x04\xa0\xe7\ +\x7f\xf5\x73\xf8\xe5\xcf\x74\xd5\x3b\x55\x6c\x4d\x22\xd1\x7f\xa1\ +\x01\x90\x90\xf9\xf9\x68\x9c\x95\x94\x57\x32\xcb\x77\x00\xc5\x62\ +\x47\x5b\x8b\x2e\xf3\x29\x26\x4e\x3d\xe0\x8d\x3d\xfb\xd8\xde\x7a\ +\x0c\x04\xc8\xfc\xec\xac\x0c\xdd\xb5\xf2\xb4\x65\x51\x45\x09\x6c\ +\xa8\x5f\x26\xa6\x52\xa1\xae\x3d\xd1\xd4\x0a\xaf\xec\x7a\x0f\x8e\ +\x9e\x6c\x62\x9f\x47\xb0\x61\xc7\xab\x2a\x61\x78\xe9\x12\x18\x59\ +\xbe\x14\x3c\x65\xc5\x20\x58\xcc\x3a\x49\x9e\x5c\x4c\xf7\x87\xd5\ +\x8c\xe7\xd1\x78\x73\x76\x74\x43\xee\x89\x53\x90\x7b\xf2\x34\x64\ +\x76\x76\x4a\x46\x1b\xc7\xb2\x99\x37\xa2\xae\xcf\xcb\xc9\x66\xba\ +\xde\xe7\xf3\xb3\xad\xeb\x3d\x53\xbe\x69\xdf\xdd\x81\x86\x6f\x61\ +\x7e\xae\xc4\x7c\x80\xd7\x5f\xfd\x3d\xfc\xeb\x3f\x7d\x5f\xef\xab\ +\xf4\xb0\x2d\x7a\x41\x9f\x64\x01\xc0\x90\xf9\x0e\x67\x06\xdc\x74\ +\xc7\x7d\xb0\x6c\x65\x3d\xdb\x09\x93\x18\x4c\x7e\x6d\x5f\x57\x3b\ +\x38\x32\x73\xd9\x16\x71\x4a\xe6\x93\x0b\xe8\x90\x62\x01\xbf\x79\ +\x65\x17\x74\xf6\x8a\x1b\x23\xd1\x75\xa6\x2b\x5d\xb4\x88\xa7\x29\ +\xf4\x5d\xda\x8b\x6f\xe5\x92\x45\xd1\x81\x95\x81\xa1\x51\x78\x67\ +\xff\x61\xd8\x7b\xe8\x38\xdb\x95\x23\x3a\x5c\x89\xa0\xf2\x94\x14\ +\x81\xa7\xa8\x10\x7c\x85\xf9\xe0\xcf\x72\xa1\xf1\x68\x51\x01\xc0\ +\x34\xe5\x07\xdb\xf8\x04\xa4\xf5\x0f\x80\x03\xdf\xc7\xd9\xdb\x07\ +\xbc\xa2\x27\x93\x4b\xba\xb2\xae\x06\x56\xd4\xd6\x30\xf0\xd2\xef\ +\xd1\xce\x26\x3d\xfd\x83\x4c\xa5\xcd\xa4\x50\xbd\x29\x36\x20\x8a\ +\x7d\x0e\x1a\xde\x7b\x07\x7e\x80\x2e\x1f\xed\x1d\x6c\x10\xf0\x79\ +\x7a\xc6\xc9\x2b\xc9\x64\xfe\x27\x3e\xfd\x05\x28\xaf\xa8\x54\x31\ +\xdf\xe9\xb0\x33\x0b\x9f\x72\xda\x3d\x68\x0c\xd1\xb5\x92\xf9\x14\ +\xf1\xa2\xcf\xa6\xb0\xd7\xfc\xe6\x0f\x6f\x31\xdf\x9f\x59\xfe\xc8\ +\x58\x32\xa8\x48\x4c\xce\xa4\x90\xc4\xa8\x5b\x54\x0e\xcb\x16\x57\ +\x32\x80\xc9\xc9\x94\xc4\x18\xda\x78\x8a\x16\xa2\x6e\xeb\xea\x8d\ +\xae\x49\x34\xd3\x42\xfb\x1b\x95\x22\x58\x2a\xcb\x4a\xa0\xa6\xa2\ +\x8c\x0d\x54\xb1\xa1\x5a\xb2\x15\x3c\x53\xd0\x37\x38\xcc\xf6\xff\ +\x99\xe9\x5e\x44\xd9\x99\xe9\xe2\x58\x80\xb4\x36\xc2\xae\x37\x5e\ +\x85\x7f\xfb\xf1\x0f\x8c\xd4\xc5\xdf\x23\x3d\x31\x9b\xf7\xe5\x52\ +\x91\xf9\x0e\x3c\x92\xc8\x63\xc1\x90\x50\x88\x9d\x2b\x99\x4f\xd3\ +\xc4\xc8\x4d\x1a\x1a\x1b\x87\x77\x1a\x0e\x63\xa3\x8e\x44\xc5\x2c\ +\x01\x80\xc0\xc2\xcd\x22\x88\x5f\x5c\x90\x83\xea\xa1\x94\x6d\x49\ +\x6b\x95\xa6\x53\x45\x04\x71\x7c\x9d\x40\x48\xc6\x19\xad\xc8\x49\ +\x7e\x39\x5b\xa2\x46\x1a\xa9\x24\x6f\x83\xa6\xab\xd3\xa2\xcc\xa4\ +\xcf\x29\x57\xdf\x2a\x2d\x73\x27\xc7\xe9\x29\x7f\x71\x10\x25\x0c\ +\x49\x99\xe9\xac\x7b\x95\x2b\x4b\xab\x9f\xa3\xaa\xa0\x7a\x73\x52\ +\x4a\xdb\x4b\xbf\xfd\x35\x3c\xfb\x73\x43\x97\x7e\x46\x46\xdf\x85\ +\x02\xc0\x59\x33\x9f\xa6\x3c\xd1\x7e\xb8\x62\xea\x93\xc0\x1a\x59\ +\xc9\x7c\x5a\x2e\x6e\x68\x64\x9c\x6d\x16\xd9\xdc\xde\x15\xd5\xa3\ +\xf2\x98\x39\x4b\x9d\x32\xcd\xde\xcb\x25\xf7\xaa\x28\x3f\x07\x45\ +\x6e\x96\xe8\x65\x58\xcd\xd1\xf9\x0a\xe2\x31\x12\xbb\x96\xf6\x2e\ +\x92\xcf\xe9\x3d\x89\xc9\x13\x93\x1e\x26\xde\x87\x11\xa0\x33\xd1\ +\xef\x71\xa3\x89\x58\xd7\xfc\x9c\x4c\x36\xeb\x97\xcd\x12\xc7\xdf\ +\xfc\xcf\x27\x7f\x04\x6f\xbf\xf9\x5a\xa2\x01\x35\xda\x0b\x28\x9c\ +\x0a\x00\x38\x67\xcc\x27\x9d\x4e\x3d\xd2\x24\xe9\x5c\xca\x16\xd6\ +\x32\xbf\x1f\x7b\xd6\x10\xf6\x4e\x5a\x29\x2b\x88\x3e\xb1\x1c\x2c\ +\xa2\x1e\x44\xd2\xc0\x4e\x01\x9f\xb3\x98\x22\x4e\x3d\x5a\x7c\x4f\ +\x3b\xdb\xba\x9e\xde\x8d\x63\xe3\x8c\x02\x0b\xec\x50\x0f\x27\x50\ +\xd2\xa8\x24\xad\xdf\x4b\xab\x79\xce\xb5\x50\x00\x8b\x36\xc9\xca\ +\x70\xa6\x45\x7b\xfd\xe8\xf0\x10\xfc\xe3\xf7\xbe\x05\x2d\x8d\xa7\ +\xce\x39\xf3\xcf\x07\x00\xce\x39\xf3\x69\xdd\x40\x32\x9a\x68\xce\ +\x20\xcd\x0a\x22\x11\xac\xc7\xfc\x9d\xcf\xff\x0c\x3d\x88\x2e\xb8\ +\xfe\xf6\x7b\xa1\xa4\x62\x51\xb4\x01\x59\x92\xa4\xdd\xaa\xbb\xe8\ +\x44\x2a\x15\x6a\x07\x0a\x61\xb3\xa4\x0f\x49\xdf\x1f\xda\xdf\xc0\ +\x7a\xbe\x7b\x72\xe2\xbc\x30\xff\x5c\x03\xe0\xbc\x31\x9f\xc4\x2a\ +\xcd\x16\xa2\x5e\x36\xc1\x7c\xe6\x78\xe6\xb7\x9c\x3a\x2e\xa9\x00\ +\x1e\xea\x37\x6d\x85\xcd\xdb\x6f\x42\xf1\x1d\xd3\x9f\xf4\x2c\xf6\ +\x4c\xb3\x29\xa5\x18\x4f\xe3\x1a\x2e\xf4\x76\x48\xbd\xc9\xeb\xfd\ +\x78\xdc\x93\xf0\xdc\x33\x3f\x85\xf7\x76\xbf\x95\xe8\x4f\x29\xb9\ +\xe3\xf1\xb3\xfd\x7d\x6e\xbe\x30\x9f\x8e\x64\x90\x91\x0a\x68\x47\ +\xeb\x9c\x00\xa0\x65\xbe\x76\xfc\x60\xcb\xf5\xb7\x42\xed\xf2\xfa\ +\x28\x08\x38\x4e\x5c\x35\xc3\x62\x31\x49\xc3\xca\xc9\x19\x0a\x21\ +\xf5\x44\x8c\x97\x53\xbc\xe5\xf7\x23\x7b\x62\xef\x3b\x6f\xc1\xef\ +\x7e\xf5\x34\xb8\xdd\x86\xde\x07\x8d\xee\x3d\x92\x68\x80\xe7\x42\ +\x03\xe0\x82\x31\x9f\x0c\x2a\xb2\xc4\xc9\x35\x6b\xed\xe8\x81\x57\ +\x9e\xfb\x4f\x5d\xe6\xab\x42\xc1\x95\x35\xb0\xf9\xaa\x1b\xa1\xac\ +\xba\x36\x0a\x02\x79\xcd\x41\x96\x61\xcb\x7c\xeb\x0b\x93\x18\x45\ +\x06\x25\x79\x32\x54\x5f\x4a\x69\x57\x02\xf3\xe8\xc1\x7d\xf0\xf2\ +\xef\x9e\x85\xae\x8e\xb6\x44\x8f\xa0\x3c\xaf\x3b\x91\xde\x3f\x57\ +\xef\xc4\xcd\x37\xe6\x4f\xf9\x7c\xcc\xf0\x6a\x3e\x7d\x0a\x9e\xfc\ +\xde\xdf\xcd\xf8\x45\x09\x08\x1b\xb7\x5d\x0f\x95\x35\x4b\xa3\x20\ +\x90\x89\x97\x17\xa1\xe4\xb9\x73\x2a\x18\x09\x5c\xe4\xca\xd2\x9a\ +\xfd\x36\x8b\x38\x93\x57\xf9\xdb\x34\x91\xe3\x83\xa3\x07\xe1\x0f\ +\x2f\x3c\x37\x1d\xe3\xa9\x50\x42\xe7\xc3\xa0\x49\xea\x4c\x26\x00\ +\x92\xc6\x7c\x22\x9f\x2f\x00\xff\xfe\x83\x6f\x40\x7f\x4f\xe7\xac\ +\x5e\x3a\xb7\xa0\x08\xea\x37\x6e\x85\xa5\xab\xd7\x81\x3d\xcd\x11\ +\x03\x82\x24\x9a\x39\x79\x35\x52\x4e\x4e\x08\x17\xa2\x4b\xfa\xc7\ +\x46\x1b\x63\x8d\x27\xc7\x1b\xe4\x69\x5e\xa4\x5a\x48\xb2\xb0\x2c\ +\x5e\x9e\x57\x49\x1d\xf9\xd9\x93\x13\x63\xb0\xef\x4f\xbb\xe1\xbd\ +\x5d\x6f\xc0\xc8\xf0\xe0\x74\xaf\x3c\x26\x8d\x9c\x3e\x7d\x3e\xa4\ +\x12\x37\x5f\x99\x4f\x29\x62\xaf\xa0\xfe\x3f\x79\x64\xbf\xf6\x15\ +\xfa\x66\x32\xe0\x64\xc2\x9e\x59\xb5\x78\x19\xd4\xad\x5c\x03\x35\ +\x4b\x56\x81\xdd\xe1\x88\x03\x81\x52\x44\x2b\x25\x86\x38\x20\x98\ +\xe8\xf3\xd8\x02\x8e\x32\xb9\x27\xc6\xe1\xc4\xf1\x43\x70\x78\xff\ +\x5e\x68\x39\x7d\x62\xda\x81\x1f\x45\x70\x87\x98\xdf\x7f\xbe\xd4\ +\x92\x79\xbe\x32\x3f\x10\x0c\x19\xad\x7d\xf8\x15\x10\x13\x21\x28\ +\xdd\x7c\xb1\x51\x25\x68\x1a\x1a\xd9\x0f\x44\x34\x39\xb3\xa8\xa4\ +\x1c\xca\x17\xd5\x41\x49\x79\x35\x94\x57\x2f\x06\x67\x7a\xba\xa2\ +\xd7\xab\x37\x92\x12\x17\x72\x16\x12\x7c\x0e\xcc\x7f\xef\xea\x6c\ +\x85\xf6\x96\x46\xf4\xe1\x4f\x42\x6f\x57\xc7\x6c\xda\xf8\x80\xc4\ +\xf8\xf7\xce\xb7\x5d\x62\x9e\xbf\xcc\x17\x60\xb0\xaf\x5b\xef\x1d\ +\x89\xf9\xaf\x80\x38\x03\x96\x36\xa7\xfe\x5a\x22\x20\x30\x91\x8e\ +\xbd\xb1\xb7\xab\x9d\x51\xd4\x3d\x73\x38\x21\x37\xbf\x08\xb2\xf3\ +\xf2\xc1\x85\x1e\x85\x03\x01\x61\xb7\x3b\xc4\x95\x3a\x68\x7f\x43\ +\xda\x20\x7a\xca\xcd\x24\x81\x17\x8f\x53\x1e\x37\x4c\x8c\x8d\xc2\ +\xf0\x60\x3f\x0c\x0d\xf4\x82\xcf\xeb\x9d\x0b\x3f\x28\x51\xe1\xeb\ +\x48\x2f\x5e\x28\x8f\x84\x9b\xaf\xcc\xef\x38\x73\x1a\x5e\x7c\xe6\ +\x27\x7a\xef\x59\xa4\x11\x99\xe4\xf8\x53\xca\xf9\x97\x41\x67\xbb\ +\xba\x14\x29\x3b\x25\x89\xf5\xda\x85\xfe\x61\x6e\x3e\x32\x7f\x64\ +\xa8\x1f\xfe\xeb\xe9\x7f\xc6\x5e\x17\xe7\x2b\xd3\xca\x23\x5b\x13\ +\xd4\xa3\x5e\xb2\xa4\x29\x7a\x96\x97\x64\xa6\x93\x4b\x47\xf3\xf4\ +\x9e\x04\x9d\x7c\xfd\x54\x02\xc0\x7c\x61\x3e\x48\x3d\x7d\x26\xe2\ +\x93\xa4\xc2\x55\x92\x4f\x7d\x23\xe8\xec\x61\x70\x9e\x0a\x05\xf4\ +\x5f\x96\x5c\xba\xf7\x52\x41\xf4\x70\x17\x11\xf3\xe9\x3d\xb7\x9f\ +\x85\x57\xb3\x45\x52\x11\x94\xa5\xbc\x12\xce\x7e\x21\x6d\xb7\xc4\ +\xf0\x06\x89\xe8\xfd\xba\x53\x4d\xf7\x70\x17\x09\xf3\xdb\x24\xe6\ +\x9d\x2b\x77\xc9\x24\x19\x8e\x55\x12\x15\x49\x64\x57\xd8\x19\x21\ +\x88\x2d\x70\xe1\x96\xce\xbb\xa4\x77\x21\x6a\x81\x79\x50\xb8\x8b\ +\x80\xf9\x7d\x92\x38\x3f\x0d\x0b\xe5\x9c\x00\x60\x81\xf9\x97\x30\ +\x00\x16\x98\x7f\x09\x03\xa0\x50\x0a\x44\x2c\x30\xff\x12\x2a\xbc\ +\xc2\xe8\x79\x61\x81\xf9\x97\x2e\x00\x1e\xd1\x8b\x92\x2d\x30\xff\ +\xd2\x51\x01\xad\xda\x60\xc8\x02\xf3\x2f\x1d\x09\xb0\x49\x2f\x12\ +\xb6\xe3\xee\x87\x17\x98\x7f\x89\x00\x20\x4e\xf4\xd3\x8a\x1c\x8b\ +\xeb\x96\x2e\x30\xff\x12\x01\x40\x96\xf6\x66\x75\x4d\xdd\x02\xf3\ +\x2f\x21\x00\xc4\xed\xd1\x46\x39\x6c\x0b\xcc\xbf\x74\x00\x10\xb7\ +\x9e\xe8\xe4\xd8\xe8\x02\xf3\x2f\x21\x00\xc4\x6d\x28\x73\xf4\xd0\ +\x3e\x88\xd0\xde\x74\x0b\xcc\xbf\x24\x00\x40\x49\x14\xaa\xd5\x85\ +\x68\x1b\xb7\x1f\x7f\xff\x3b\x6c\x1d\x9e\x05\xe6\x5f\xdc\x85\x22\ +\x80\xb4\x28\x4d\x81\xd6\x1b\xe8\xed\xe9\x86\xce\x8e\x36\xb8\xe9\ +\xa3\x37\x43\x1a\x4a\x82\x05\xe6\x5f\xbc\x00\xa0\x42\x59\xa8\x9f\ +\xa1\xf8\x8f\xf2\xc3\xb6\xd6\x33\xd0\xda\xda\x02\x3b\x6e\xd9\xc1\ +\x66\xb4\x2c\x30\xff\xe2\x05\x00\xa5\xb0\x1e\x03\x31\x57\x4e\x35\ +\x4f\xaa\xa5\xb9\x19\x9a\x9b\x9b\x60\xc7\x8e\x1d\x6c\x7a\xf6\x02\ +\xf3\x2f\x4e\x00\x30\x5e\x23\x9d\x00\x71\x59\x51\x15\x08\x9a\x1a\ +\x1b\xe1\xc4\xc9\x13\xb0\xf5\xaa\xab\xd9\x34\xed\x05\xe6\x5f\x9c\ +\x00\xa0\x72\xd2\x08\x04\xcd\x4d\x4d\x70\xfa\xe4\x29\xd8\x78\xc5\ +\x56\xc6\xe8\x05\xe6\x5f\x9c\x00\x48\x08\x02\xb2\x07\x9a\x9b\x1a\ +\x61\xcd\xba\xcd\xe0\xa5\xb5\x6c\x17\x98\x7f\x51\x02\x20\x21\x08\ +\x3a\x3b\xda\xd1\x38\x6c\x81\xe5\xf5\xeb\xc0\x87\x06\xe1\x02\xf3\ +\x2f\x4e\x00\x24\x04\x41\x6f\x77\x27\x9c\x69\x3a\x0d\x55\x8b\x97\ +\x42\x38\xc2\xa9\x98\xdf\xdb\xd5\x06\xbf\xff\xc5\xbf\x2d\x30\x7f\ +\x9e\x94\x99\x4c\x0c\xb9\x03\xc4\x59\xaa\x71\x79\xf2\xb4\x20\xd3\ +\xe2\x65\xab\xc1\x95\x95\x8b\x40\x08\x43\x4f\xc7\x19\xb6\xd7\x8f\ +\x41\x59\x60\xfe\x3c\x2e\x77\x48\x01\x23\x61\x8e\x44\x4b\x59\x2f\ +\x59\x68\xc6\x4b\x13\x04\x9d\x0b\xcc\xbf\x78\xca\x0d\x48\x83\xb3\ +\x60\xfe\x5e\x10\xb3\x8d\x17\xca\x45\x54\x72\x91\x68\x99\xea\xc9\ +\x04\x8c\xa7\x1c\xc3\xcf\x41\xea\xec\x49\xb4\x50\xce\xc2\x08\x34\ +\x2a\x4e\x10\x27\x54\xd2\xba\xf4\x72\x52\x09\xe5\x16\xd0\x44\xc8\ +\xf7\x17\x9a\x76\x7e\x94\xff\x0f\x30\x9e\x0d\x50\xa3\x3a\x2b\x27\ +\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\x3a\x63\x72\x65\ +\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\x32\x2d\x31\x30\x54\x30\ +\x32\x3a\x30\x38\x3a\x34\x37\x2d\x30\x36\x3a\x30\x30\x48\x3f\xeb\ +\x77\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\x3a\x6d\x6f\ +\x64\x69\x66\x79\x00\x32\x30\x31\x30\x2d\x30\x31\x2d\x31\x37\x54\ +\x31\x30\x3a\x34\x33\x3a\x32\x34\x2d\x30\x36\x3a\x30\x30\x25\x20\ +\xe2\x45\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x0f\x3e\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x0f\x05\x49\x44\x41\x54\x78\xda\xed\x5d\x4d\x8f\x25\x55\ +\x19\x7e\xde\x53\xd5\x33\x3d\x03\x4c\xc3\xe0\x1f\x10\x91\x09\x8e\ +\x44\x18\x62\x94\x8d\x09\x19\x22\x31\x44\x25\xc6\x10\x09\x62\x5c\ +\x20\x02\x2a\x0b\x70\x65\xc2\xc6\xa8\x0b\x17\x46\x12\x12\x75\x12\ +\x16\x93\xb0\x70\x0b\xc4\x10\x4d\x98\x49\xc4\x64\x94\x88\xc8\xa2\ +\x51\xc1\x0f\x70\xe5\x47\xec\x61\x9a\x99\xe9\xe9\x7b\xeb\xbc\xaf\ +\x8b\x3a\xa7\xee\xa9\x53\x5f\xb7\xbe\xfa\xde\xee\x3e\xa7\x73\x52\ +\xf7\xa3\x6e\x77\xdf\x7a\x9e\xf7\x79\x9f\xf7\x9c\x53\x55\x40\x68\ +\xfb\xba\xd1\x90\xbf\x4c\x41\x51\x38\xa4\x7d\xc0\xa0\xc2\x63\x02\ +\x41\x41\xe5\xb6\xee\x63\x00\xb8\x80\x0b\xb2\x30\x02\xd4\x80\x1e\ +\xc8\xd0\x93\x0c\xfe\x8f\x47\x04\x71\xdf\xb3\x9f\x39\x8f\xf3\xb2\ +\x23\x04\x20\x10\x55\xfc\x9e\x00\xfc\x40\x4a\x30\x07\x09\x72\x44\ +\x00\x20\xf6\xb3\xf3\x12\x81\x06\x00\x9e\x2a\x1e\x87\xb6\x73\x2a\ +\x20\xee\x63\x00\x19\xf8\x4d\x44\xa0\x2e\xe0\x0b\x84\x1c\xc0\x6d\ +\x57\xde\xf3\xa0\x08\x03\x79\x01\xef\x47\x14\x94\x4b\x00\x51\x50\ +\x42\x20\xb6\xe0\x3b\x24\x10\x02\x61\x03\x1b\xd2\x9b\x00\x04\x22\ +\x49\x89\xe5\x02\xee\xf6\xa8\x82\x04\x81\x00\xc3\xa6\x02\xb1\xe0\ +\x1b\xe0\x45\x41\x31\x81\xb4\x21\x01\x03\xb0\xdb\x46\x12\x50\x07\ +\xf0\x7d\xd0\x63\xd3\x23\x87\x04\x2a\x90\x60\x14\x12\x88\x43\x02\ +\x0b\x3c\x2b\x28\x6d\x08\x90\x98\xae\x2d\x11\x0c\x19\x04\x40\x29\ +\x09\xa8\x23\xf8\x16\xf8\x95\xeb\x1f\x78\xe5\x7f\x01\xa6\x81\x9b\ +\x58\x9c\xc4\x64\x73\x01\x89\x00\xc2\x20\x61\x10\x33\x88\x35\x48\ +\x6b\x5c\x78\xfe\xbe\x63\x0a\x2a\x51\x50\x53\x02\x4d\x08\x34\x25\ +\xd0\x14\x40\x42\x20\xdd\x44\x02\x6a\x09\xbe\x8d\xf2\x15\x00\x07\ +\xae\x7f\xe0\x95\xff\x04\xb4\x16\x40\x02\x4b\x00\xd6\x50\x3a\xc1\ +\x85\x17\xee\xbf\x4d\x41\x6d\x13\xc8\xf6\x89\x25\x03\x00\x0d\x40\ +\x1b\x02\xb0\x4f\x02\xea\x08\xfe\xc1\xeb\x1f\x78\xe5\xdf\x76\xdf\ +\x1f\x7c\xf3\xf6\xca\xef\xf1\xf0\x27\x0f\x05\x30\x7b\xb4\x9f\x9d\ +\xbb\x0c\x88\x40\x44\xd2\xad\x66\xb0\xd6\xe0\x69\x82\xef\x9f\x7a\ +\x0d\xa4\x35\x88\xa7\xd8\x7c\xf1\xc1\x3b\x14\xd4\x16\x81\xb6\x08\ +\x74\x85\x40\x57\x00\x4c\x08\x34\x71\x48\x60\x7d\x41\x46\x02\xd5\ +\x12\xfc\x03\x6d\xc0\x0f\x6d\x00\x0f\x40\x04\x10\xa5\x5b\x10\xa0\ +\x08\xa4\x08\x14\x29\x7c\xe7\xa1\xdb\x00\x22\x80\x14\xd6\xee\x39\ +\x7d\x4e\x20\x47\x00\x5c\x03\xe0\x30\x80\x43\x00\x0e\x1a\xcc\x62\ +\xdf\x9f\x1d\xc5\x51\xaa\x54\x00\x43\x00\x37\xe7\xc7\xa5\x91\xff\ +\x8d\xdb\x1b\x5d\x84\x55\x80\xf5\xf5\xf5\x80\x66\x8b\x76\xfc\xf8\ +\x71\x00\xc0\xa9\xdf\x6e\xa5\x89\x80\x39\x53\x01\x4e\x34\x44\x6b\ +\x70\x92\x40\x6f\x4f\xf0\xc3\x67\x5f\x07\x71\x02\xd2\x09\x36\x5f\ +\x7a\xe8\x4e\x05\x75\x09\xc0\x45\x02\x5d\x36\x4a\xb0\x0d\x60\x4a\ +\xa0\xc4\xa8\x41\x96\x0e\x54\x0d\xf8\x6e\xf4\x97\x83\x1f\xda\x4e\ +\x4a\x81\x51\x81\x99\x2a\xa4\x68\x29\x7c\xfb\x2b\xb7\x64\xe8\xad\ +\xdd\x7d\xea\xac\x40\xae\x01\x70\x35\x80\xab\x00\xac\x96\xa8\x40\ +\x56\xa1\x51\xc5\x40\x8f\xeb\xf6\x0f\x18\xc3\xf7\xdf\x2e\xe0\x3f\ +\x7c\x47\xf0\x00\x7d\xda\xa9\x73\x46\x01\xac\x07\x60\x81\x30\x83\ +\x93\x04\x92\x24\xd0\xd3\x29\xf4\x64\x0a\xde\x9e\xe0\xc7\xcf\xbd\ +\x61\xcc\x21\x63\xf3\x57\x8f\x9d\x24\xd0\xfb\x04\xba\x08\xe0\x12\ +\x80\x2d\x02\x6d\x03\xb0\xc6\x90\x01\x70\xa6\x00\xce\xa4\x8e\x1b\ +\xfd\x31\x80\xb8\x2b\xf8\xa1\x8d\xec\x0d\x5c\x27\x4f\x84\x6f\x7d\ +\xe9\x78\xf6\xda\x91\xbb\x9e\x79\xd9\xa8\x80\xeb\x07\x56\x1c\x25\ +\x20\x00\xa4\x2a\x06\x87\x32\xf9\x77\xeb\xfc\xef\x3d\x76\x02\x2c\ +\xd2\xaa\x87\xd6\xaf\xd5\x1e\xdf\x2c\x99\xa7\xcf\x45\x04\x8f\x7e\ +\xf1\xe6\x19\x09\x4e\x3e\x7d\xc6\xa4\x81\x43\x00\x56\x05\x62\x53\ +\x41\x66\x06\x55\xc5\xc0\x90\x6b\xfe\x00\x00\xdf\x7d\xf4\x04\x58\ +\xd0\xba\x87\xd6\x97\x00\xcd\x5d\x84\x20\x48\x3b\x03\xf8\xda\x17\ +\x8e\x65\x48\x0a\xa4\xb6\x22\x88\x3d\xf9\x77\x15\xc0\x96\x7e\xf9\ +\x71\x89\x8e\x2d\x54\x01\xdd\xaa\x00\x7b\xdc\xc5\x4c\xef\x48\x59\ +\x47\xf1\x35\x6b\x1c\x8d\x09\xbc\x62\x08\xb0\x6d\x08\x60\xab\x01\ +\x8e\x9b\x52\x80\xcb\xc4\xf6\x89\x2a\x00\xd9\x5b\x01\x30\x03\xde\ +\x27\x40\x4e\x09\x0c\x46\x52\xc4\xea\xa0\x97\xff\x63\xb7\x12\x88\ +\x2b\xe0\x72\x55\x00\x00\xa0\xbb\x48\x80\x14\x19\x1d\x5a\xbb\xa6\ +\x0d\x9a\x59\x15\xe0\x75\x5d\xf0\x06\xf0\xbd\xd7\x8a\xd3\xdd\xfc\ +\xaf\x7c\x02\xb8\x24\x28\xcc\xeb\x33\x87\x28\x5f\x94\x07\xa8\x4d\ +\x01\x9c\x62\xc3\x6c\x94\x80\x0b\x0a\x50\x36\x53\x5b\xaa\x00\x65\ +\x24\x50\x33\x05\x68\x8e\xf2\xd0\xc6\x50\x80\x12\x02\xb0\xe9\x4e\ +\x0a\xd0\x52\x99\x02\x54\x19\xf0\x2e\x3b\x50\xe3\x03\x0a\xff\x48\ +\xc8\xf7\x3b\x4c\x80\x12\x05\x80\x89\x74\x71\xa3\xde\xe9\xc2\xa5\ +\x04\x28\x5b\xa8\x43\xf1\xbc\xb0\x26\x3d\x6b\xba\x50\x05\x74\xab\ +\x02\x12\x5d\xf4\x00\xd0\xe9\x88\x20\x9b\x2e\xae\x07\x30\xcf\x1b\ +\x02\xbb\x51\x01\x2a\xa5\x28\x28\xc0\x72\x28\x80\xb8\x2a\xe0\x46\ +\xbf\x14\xfc\x5a\xd9\x3a\x4d\xb4\x26\xc0\xb4\xa7\x02\x84\x2a\xa0\ +\x5b\x9b\x7a\x0a\x30\x9b\x0f\x98\xa9\x40\x4a\x02\xfb\x58\x5a\x95\ +\xec\xc3\x29\x40\x50\x81\x1d\x51\x00\xb8\x26\x90\xf3\x5e\xc0\x9a\ +\x42\xe1\x11\x08\x90\x70\x00\x63\x11\x2d\xd1\xf5\x04\xc8\xc0\x77\ +\xc8\x20\x0b\x53\x80\xd0\x46\x2f\x03\x0b\x04\xf0\xc1\xe7\x91\x14\ +\x60\x1a\xaa\x80\x85\x54\x01\x53\x2e\xf7\x00\x30\x6e\xdf\xe6\x7f\ +\x7f\x84\x30\x28\xc0\x1e\x57\x00\x70\xb9\x17\x18\x4d\x01\x92\x50\ +\x05\x2c\xc6\x03\xd4\x29\x80\xed\xe2\x6c\x47\x53\x00\x67\x99\xfa\ +\x5c\x2d\x54\x04\xc3\x56\x01\x3c\x53\x00\x3f\xfa\x61\x14\x00\xec\ +\x4d\x07\x2f\x34\x05\x84\x39\x82\xd1\x52\x40\xe9\xf4\x30\x66\x86\ +\x10\x63\xa4\x00\x0e\x1e\x60\x21\x8d\xcb\x08\xe0\x44\xbe\x78\x55\ +\x01\x46\x53\x00\x09\x55\xc0\x22\xaa\x00\x7b\xdc\xc5\x9b\x07\x16\ +\x13\xf6\xe2\x9e\x35\x94\x11\x65\x04\x0f\x10\xd6\x77\x2e\xa6\x89\ +\x34\xa7\x00\x37\x15\x8c\xa6\x00\x7d\x17\x78\x86\x2a\xa0\x63\x0a\ +\xa8\x20\x80\x7d\x6d\xd7\x10\x20\xb4\x81\x09\xe0\x02\x8e\xec\x04\ +\xe2\xd6\x4a\x1d\x08\xb0\x17\x08\xe0\x45\xfe\x28\x0a\x10\xf0\x5f\ +\x90\x07\xa8\x39\xfe\xd2\xb0\x5d\x2a\x05\x08\x55\x40\x37\xcf\x54\ +\xab\x00\xa8\x56\x83\x50\x05\xec\xf1\x2a\x00\x15\xf2\x3f\x9a\x09\ +\x94\x50\x05\x2c\x3f\x01\x64\x89\x09\x10\xda\xb8\x04\xe8\x22\xff\ +\xed\x3c\x40\xc0\x62\x31\x55\xc0\x1c\xc6\x4e\x7a\x98\xf5\xa0\x00\ +\xbb\x5c\x01\x0a\xef\x8d\x56\x06\x86\xb9\x80\x85\x54\x01\x52\x31\ +\x17\x50\x98\x17\xb0\xc8\x8b\x04\x0f\xb0\xaf\x14\xc0\x8f\xfa\xb1\ +\xca\x40\x1e\x88\xd1\xa1\x0d\xef\x01\xba\xe6\xff\xa0\x00\x7b\x45\ +\x01\xca\x06\x88\x02\x01\xf6\x2f\x01\x10\x66\x03\xf7\x50\x0a\x68\ +\x4b\x00\x60\x39\x87\x82\x43\x15\xd0\xb5\x0a\x58\x16\x05\x08\x98\ +\x2c\xd4\x04\x8e\xd5\x76\x6c\x1c\x20\x54\x01\x5d\x3d\x80\xb7\xfc\ +\x67\xde\x1e\x3c\xc0\xde\xf2\x00\x73\x4b\xbe\x8c\xa6\x00\x01\x8c\ +\x45\x56\x01\xf3\xe6\x7e\x0a\x55\xc0\x3e\x50\x00\x54\x03\x2f\xa3\ +\x55\x01\x3d\xbf\x48\xa8\x02\x3a\x56\x01\xcb\x63\x02\x03\x28\x4b\ +\x99\x02\x90\x9e\x86\x29\xbe\x1a\x2c\x5b\x0a\x08\x55\xc0\x08\x26\ +\x10\x5e\xde\x37\x8f\xdb\x40\xa5\xc2\x21\xde\xdf\x6d\xf4\x14\x70\ +\xe2\x47\x1b\xad\xf6\x27\xef\xb4\xf2\xa6\x1b\xd2\x53\xd3\xfb\xe8\ +\xf7\xf9\xa6\xd6\x74\xd6\xb4\xaf\x9c\x4d\xc7\xd1\x7f\x3b\xa6\xfa\ +\x14\x40\xce\x52\x30\x1a\x75\x55\x70\x08\x96\xc5\x78\x80\xa5\x51\ +\x80\x80\xc5\x52\x13\x80\x9c\x7d\xdb\x88\x5a\xf0\x00\xc1\x03\xf4\ +\x63\xe4\xd8\x39\x76\xaf\xb5\xc6\xe3\x21\xe3\xe2\x11\x14\x20\xb4\ +\x7e\x0a\x10\x02\x7a\xc9\x14\xa5\x27\x2e\x41\x01\x82\x02\x74\x1f\ +\x07\xe8\x54\x83\x53\xfd\x3e\x7b\x7d\xd2\x89\x5a\xee\x40\x73\xd8\ +\x02\xb7\xf6\xa7\x96\xe7\x06\xf6\x53\x00\xa9\xfe\x0e\x21\x55\x0c\ +\x4b\x1a\x1a\xa9\x3e\x8f\x77\x84\xd5\xa1\x8d\xa2\x1e\x43\x88\x65\ +\xdc\x0b\x64\x0a\xe0\x2f\x9c\x10\x54\x54\x08\x1a\x45\x01\xa8\xe6\ +\xa5\x1a\x22\x50\xf0\x00\xf9\x9c\x4b\xc3\x0c\x03\x08\x39\x1e\xa1\ +\x70\x2b\xa8\x9d\x52\x80\xa0\x02\x0b\x8d\x7e\x97\x04\x5d\x53\x71\ +\x2f\x13\x48\x01\xfc\xc5\x9b\xc3\x9e\x00\xc4\x6d\xc0\x0e\x6d\x49\ +\x89\x60\x64\x9f\x68\xc4\x14\xd0\x95\x18\x8a\x42\xc5\xd0\xc7\x03\ +\xd4\xdd\x01\x70\x67\xab\x80\xa0\x00\xcb\x5b\x05\x38\x91\xdf\x16\ +\xa7\x78\x90\x7f\x22\xb4\x1d\xab\xfd\xbb\x56\x0d\xe3\x55\x01\xa1\ +\xed\xea\x36\x8c\x02\x50\xf7\x9c\xe7\xbf\xfd\xee\x6b\x6f\xee\xe9\ +\x03\x7e\xd3\x27\x3e\x52\x1b\xc2\x6d\x3c\x40\xd9\x20\x50\xdb\x60\ +\x1d\x64\x1c\x20\xb4\x7d\xac\x00\x63\xb5\x9f\xde\xfb\x2f\xcf\x84\ +\x52\xb6\x75\xbb\x52\x0a\x44\x84\x28\x8a\xa0\x94\x42\x1c\xc7\x88\ +\xa2\x28\xb7\xad\xea\xee\x7e\xf6\xf3\x51\x14\xe5\x7e\xaf\x52\xaa\ +\xf4\xef\xba\xff\xd3\x3c\xed\x03\x5f\xfe\xcd\xee\xf6\x00\x41\x00\ +\xf6\xb9\x02\x54\x91\x9d\x5a\xae\xdb\x27\x8f\x32\xfb\x8d\x40\xca\ +\x3b\x20\xe2\x1f\x1f\x6f\x32\x5f\xaa\xc2\xde\x4b\xfe\xb9\x41\xa0\ +\x16\x07\x35\xac\x08\x0a\x0a\xb0\x3b\xda\xe9\xd3\xa7\x3b\x7d\xee\ +\xa9\xa7\x9e\x0a\x28\x07\x05\x08\x6d\x3c\x0f\xd0\xe0\x0e\x55\xc3\ +\x02\x80\x79\xd3\x95\xd6\x7a\x8f\x78\x80\xa6\xba\xbf\x62\xdd\x8f\ +\x34\x8c\x07\xf8\x6b\x02\x82\x02\x84\xb6\xa3\x1e\x60\xec\xc9\xa2\ +\x24\x49\xf6\x25\x40\x54\x26\x95\x34\xdc\xb9\x9a\x41\x01\x82\x02\ +\xb4\x64\x62\x21\xf2\xa9\xe5\x38\x40\x37\xe5\xd8\x2b\x1e\xa0\xed\ +\x79\x01\x22\x54\xba\x13\x51\x71\xee\x97\x82\x02\x84\xb6\x34\xe3\ +\x00\x43\x5b\x02\xde\xa7\xf7\xaf\x27\xd4\x17\x01\x83\x78\x00\x0a\ +\x23\xfa\xbb\xbc\x55\x5c\x2a\x74\x8e\x73\xc4\x5a\x8c\x03\xd0\x5c\ +\x91\x3e\x54\xce\x6f\xeb\x35\x76\x4d\x44\xb7\x3d\xbd\xc7\x5b\xfa\ +\x2d\xee\xed\x42\x21\x85\xa5\xc1\x99\x37\x90\x16\x0a\xe0\x58\x8b\ +\x10\x4c\x4b\x1f\xe9\xce\xc0\x50\x76\x71\x68\xe4\xaf\x2b\xef\x44\ +\x7e\x13\xa6\x59\x0a\x70\x77\xcc\x7d\x28\x5c\x21\x72\x09\x70\x97\ +\x22\xc0\x52\x22\xf5\x0d\x58\x95\x91\x21\x2e\x7b\x53\x20\x20\x10\ +\xa4\xcb\x4d\x68\x42\x1b\x1e\x7c\x1b\xf2\xe2\x44\x3e\x04\x60\x4e\ +\x7b\xee\x52\xf1\xe9\xfb\x34\x27\x68\xb1\x05\xdf\x82\xee\x93\x20\ +\x9d\x7b\x96\xd9\x3c\x75\xb6\x1a\x66\xde\x71\x82\x86\xfd\x68\xde\ +\xe3\xb0\x37\x59\x58\x6b\x6d\x72\x51\x0f\x40\x18\x04\x4e\xd1\x11\ +\x06\xc0\x06\x68\x36\xcf\x05\x90\x76\xd5\x52\x9c\xe6\x01\x05\x31\ +\x3f\xf9\x8c\x63\x15\x80\xd2\x7f\x82\x68\xf6\x4f\x85\x13\x05\x46\ +\x8e\x78\xf7\xb9\x73\x73\x60\x71\x22\xdf\xed\x7e\x9a\x98\xb3\x78\ +\x8c\x9b\x8c\x02\x89\x98\x55\x2b\x4e\x2a\x70\x89\x30\xd2\x01\xf0\ +\x23\xbe\x6b\x15\x20\xe6\xce\x9a\x6d\xba\xfb\xf7\x07\x53\x1e\x69\ +\x79\x5f\x57\xf1\xae\xff\x9e\x81\xad\x9d\xad\xe9\x62\xdf\x33\xfb\ +\xb5\xb8\x85\x78\x4e\x01\xb8\xec\x0e\x35\xc2\x20\x28\x27\xf2\x31\ +\xb2\x27\x90\x41\x47\x3e\x96\x86\x00\xad\x6e\xec\xeb\x3a\x7d\xce\ +\x47\xbd\x66\x80\x13\xe7\x31\x03\xda\x90\xc0\xca\xbf\x73\xb9\x18\ +\x34\xdc\x4a\x2a\xa7\x00\x25\x44\x10\x12\x36\x36\x80\xf3\x93\xce\ +\xf3\x5e\xa0\x4e\x86\x51\x80\x48\x45\xdd\x0e\x3b\x4b\x75\x27\x67\ +\x4b\x26\x09\x92\x98\xd9\x36\x67\x6b\xbf\x9f\xbf\xe6\x8e\xda\x7f\ +\x2f\x6a\x3a\x11\x20\x33\x7c\x62\x36\x56\xde\x4d\xe4\x8b\x89\x7a\ +\x9d\x98\x6d\xfa\x3a\x65\x04\xb0\x3d\x8f\xb9\xc1\xb8\x40\x86\xd2\ +\x14\xa0\xa0\x24\xb5\x19\x0c\x62\x4e\xbf\x28\x6b\x80\x94\x93\xff\ +\x07\x3a\xeb\xb3\x62\x51\xa4\x0c\x74\xa5\x08\x0b\x36\x33\xcf\xba\ +\x66\x30\x31\x08\x94\x6d\xad\xe1\x25\x33\xd1\x22\x22\xd9\xd6\xa6\ +\xa0\x3e\xcb\xc2\x33\x13\xed\x0f\x69\xd7\x12\xc0\xcb\xf9\x19\xe8\ +\x49\x0a\xbc\x7d\x2e\x46\xfe\x45\xb2\xad\x73\xcf\x00\x9f\x11\xb9\ +\x0b\xd0\x17\x4c\xa0\x11\x42\x30\x58\x14\x14\x13\xeb\x54\x4b\x92\ +\x04\x50\x2a\x25\x41\xd9\x24\xf5\x40\x04\xb0\x32\xc6\xde\x65\xb8\ +\x63\xd5\x6d\xda\x82\x35\x43\x93\x4e\xc1\x76\x7f\x88\x67\x91\x61\ +\xd3\xad\x4a\xa3\xce\x3d\x2f\x40\xd4\x30\x04\xc8\xe4\x99\x75\x3d\ +\x01\x72\xf5\x3d\x17\x73\x7f\x0e\x7c\xf3\xba\xe6\x59\xaa\x28\xde\ +\x3d\x92\x09\x54\x29\x0d\xbe\x02\x64\x9f\xb6\x2a\x40\x5a\x03\x4a\ +\xf0\xd6\xef\xd6\x71\xd3\xc7\x6f\x36\x57\x85\x70\xa7\x22\x69\x58\ +\x05\x30\x07\xc8\x27\x40\x57\x4f\xa0\x93\x14\x7c\x2d\x3a\x8b\x74\ +\x0b\x7a\xc4\x11\x48\x66\x04\x60\x62\x08\xcb\x28\x27\x86\xd8\xef\ +\x05\x5d\x47\x80\x62\xd9\x97\xca\x3e\x67\x52\x9f\x45\x7d\xf6\x98\ +\x67\xf9\xdf\x90\xe0\x9f\xeb\xef\xb8\x64\x4a\x00\x68\xd3\x0b\x44\ +\x70\x07\x82\x04\xf9\xc9\x27\x01\xa0\x2f\x3c\x7f\xdf\xb1\x6b\x3f\ +\xf7\xf3\xbf\x08\x29\xbc\xf5\xea\x3a\x8e\xdd\x7e\xac\x94\x00\x73\ +\xaf\x19\x6c\xba\x9e\x80\x39\x40\x7a\x9a\x3f\x50\x8a\xba\xcd\x5c\ +\x27\x93\x04\x60\x40\x62\xc9\xbe\xba\x68\x81\xc4\x02\x89\x04\xa2\ +\x05\x1c\x31\x38\x62\x28\xa5\xc0\x8a\x6b\x09\x90\xae\xbf\x6b\x4f\ +\x00\xfb\xbd\x90\x4c\x6b\x89\x4d\xae\xfb\xcf\x19\x40\x3d\x33\x7c\ +\x4e\xee\xcf\x08\x60\x4a\xc1\x77\xd7\xdf\xc9\x7e\xe9\xe6\xd9\x27\ +\x1f\x21\xd0\x14\x80\xed\x89\x4f\x82\x32\x0f\x20\x94\x16\x7f\x9c\ +\x1e\x1e\x49\x2e\xbc\x70\xff\xad\x6b\x9f\x7d\xee\x8f\x24\x0a\x6f\ +\xbf\xfa\x26\x3e\x7c\xe2\xa6\xe2\xf5\x61\xe6\x3d\x18\x4d\x27\x92\ +\x70\x52\x4a\x00\x74\x5c\x0f\x92\x4c\x0d\x01\x58\x80\xc8\x78\x82\ +\xc8\xf8\x82\x88\x21\x91\x21\x80\x4a\x09\xa0\x22\x03\x3c\x15\x09\ +\x60\xc1\xef\xa6\x00\x49\x33\x01\xfc\xe1\x5d\x91\xf2\x34\x20\xec\ +\xc8\xfe\x2c\xff\xe7\xc0\x3f\xf3\xc4\xe3\x04\xda\x06\x60\xbb\x25\ +\x40\x52\x50\x80\xf7\xf0\x9e\x5c\x8b\x6b\xc9\x73\x8a\x56\x36\xa6\ +\x04\x9a\x6c\xbe\xf8\xe0\x1d\x6b\xf7\x9c\x3e\x07\x22\xfc\xf5\xf7\ +\x7f\xc2\x8d\xb7\xde\x98\x33\x83\x32\x2f\x0f\x9a\x08\xa0\xcb\x09\ +\x70\xef\xe7\xef\xcd\x4b\x31\x66\xe7\x06\x82\xd2\x2a\xc1\x9e\xdb\ +\xe7\xf6\x64\x3b\x49\xa3\xdd\x46\xbd\x4e\x09\xc0\x3a\x05\x9d\x63\ +\x46\xa4\x22\xe8\x48\xa7\x9f\x57\xe9\xb9\x81\xa4\x28\x23\xc2\x20\ +\x04\x30\xdf\x0b\xd3\x69\x43\x6a\x93\x22\x01\x1c\x23\x28\xb6\xde\ +\xcf\x81\xcf\x3e\xf8\x4f\x00\xb8\x02\x60\xcb\x6c\x7d\x12\xe8\x9c\ +\x02\x38\xc3\xc1\x42\x29\x84\x56\x22\x12\x02\x4d\x05\xb2\x4d\xa0\ +\xad\xcd\x5f\x7c\xf5\x53\x6b\x9f\x79\xf6\xd7\x00\xe1\x6f\x7f\xf8\ +\x33\x3e\xf4\xb1\x1b\xdb\x9b\xc1\x8e\x04\xc8\xac\x86\x9b\x8b\x41\ +\x99\x64\x43\x01\xac\x38\x8b\x76\xbf\xe7\xa2\xdf\x2a\x80\xe2\x2c\ +\x05\x44\x2a\x02\xa9\xd9\xef\x1b\x8d\x00\x49\x5b\x02\x48\x9e\x0c\ +\x9a\x0b\xe4\xf0\xc0\x7f\x12\xc0\x65\x02\x5d\x02\x70\x09\xc0\x65\ +\x43\x84\x6d\x00\x13\x8f\x00\x1c\x97\xcc\x16\x89\x21\x02\x9b\x1d\ +\x27\x00\x22\x00\x31\x81\xe2\xcd\x97\x1e\xba\x73\xed\xee\x53\x67\ +\x41\xc0\xdf\x5f\x7f\x0b\x37\xdc\x72\x43\x3e\x0d\xf4\x24\x80\x32\ +\x66\x49\x27\xba\x74\x24\x30\x97\x8b\x31\xcb\xd5\x50\x80\x52\x0a\ +\x5a\x74\x0a\xb8\x94\x59\x9e\xd9\x73\x61\x41\x14\x45\x00\x03\x4a\ +\x2b\x48\x64\xca\xbe\x28\xad\xff\x6d\x0a\x20\xb3\x90\xdf\x2a\x8e\ +\x4b\x80\x56\xeb\xef\x33\x13\x98\xcc\x91\x02\x4a\xa6\x7c\x21\xb3\ +\xc8\xe7\xd9\xd0\x70\x0d\xf8\x17\x0d\x01\x2e\x39\x4a\x30\xf1\x7c\ +\xc0\x4c\x01\xce\xe3\xbc\x5c\x87\xeb\xc8\xf5\x00\x04\x4a\x90\x4e\ +\x19\x6f\x1b\x12\x28\x02\xa9\xcd\x5f\x7e\xfd\xe4\xda\xa7\x7f\xf2\ +\x32\x00\xfc\xe3\x8d\xb7\xf1\xc1\x8f\xde\x30\x9c\x02\xd8\x2a\x20\ +\xe1\x7a\x05\x30\x57\x47\x10\x65\x66\x2e\x23\x33\x88\xc3\x48\x41\ +\x14\xf3\x9f\xbb\x04\xf0\xd5\xc1\xa4\x03\x15\x29\xb0\x36\x26\x50\ +\xf3\x2c\xf2\x09\x33\x0f\x80\xbe\x1e\xc0\x9a\xc0\x64\xbe\x71\x00\ +\xb7\x1a\x40\xf9\xcd\xa1\x4b\x64\xdf\x82\xff\xbe\x21\xc0\x45\x4f\ +\x01\xdc\x14\x20\x28\x9e\x9b\x0a\x18\x12\xd8\x1e\x09\x24\x02\x70\ +\x00\xc0\x41\x00\x87\x00\x1c\x16\xc8\xd5\x00\xae\x39\x72\xd7\x33\ +\x2f\xf7\x1e\x07\x08\xad\x92\x10\x54\xba\xbc\xcb\x0e\xf2\xcc\xde\ +\xdb\x3c\xf3\xc4\xe3\x00\xb6\x08\x74\xd9\x01\xfe\x7d\x4f\x01\xb6\ +\x4b\x2a\x81\xd2\x35\xc7\x2e\x09\x94\xe9\x31\x80\x15\x81\xac\x02\ +\x58\x05\x70\x95\xe9\x57\x1f\x39\xf9\xf4\x99\xf9\xe7\x37\x43\x9b\ +\x7b\x16\xb0\x84\x15\x3e\xf0\x10\xc1\xe6\xd9\x27\x1f\x01\xb0\x4d\ +\xa0\x2d\x07\x70\x57\xfe\xaf\x54\x44\x3f\x57\xc6\xed\x51\x1c\x25\ +\x33\x06\x6e\x49\x10\x99\x6e\x95\x60\x15\xc0\x61\xd3\xaf\x12\xc8\ +\x61\xf3\xda\x41\xb3\x8f\xdd\x3f\x5c\x39\xbe\xd3\xd8\x18\x35\x69\ +\x44\x56\xa5\x11\x68\x62\x00\xbe\x62\xe4\xde\x1a\xbf\xcb\x35\xe0\ +\x0b\x00\xd9\xc0\x86\x54\xfe\xa5\xa3\x38\x6a\x6a\x42\x71\x49\x10\ +\x03\x58\x31\x20\xaf\x9a\x94\x60\xfb\xaa\x79\x7d\xc5\xec\xa7\x02\ +\x01\x46\x4b\x12\xd6\xa4\x27\x06\xdc\x89\x53\xf6\x6d\x79\xa6\xaf\ +\x34\xf2\x37\xb0\x21\x8d\x99\xdb\x92\xc0\x82\x69\xfc\x40\x6c\xba\ +\xab\x06\x36\xf2\x0f\x38\xef\x2b\xf4\xbf\xa5\x4d\x68\x79\x65\x70\ +\xcb\x04\x76\x06\x76\x26\xa6\x6f\x3b\x51\x3f\x71\xde\x2f\x05\x7f\ +\x2e\x60\x7c\x12\x38\xf2\xbe\xe2\xf4\x03\x02\xb1\x8f\x7d\xf9\x0f\ +\xe0\x0f\x27\xff\x6e\x0a\xc8\x0d\xd6\x39\x4a\xe0\x0e\xfd\xea\x32\ +\xd9\x6f\x51\x94\x55\x92\xc0\x1a\x43\x57\x11\xdc\xc8\xb7\x3d\x44\ +\xff\x78\x75\x82\x3b\xca\x91\x78\x5d\x7b\x43\xbe\x85\xc8\x6f\x5d\ +\xbc\x19\x12\xb8\x5d\x79\x06\x31\xf2\xc0\x0f\xf2\x3f\x2e\x01\xfc\ +\xa1\x2e\x8d\xe2\xac\x5f\x65\xe4\x77\xaa\xde\x1d\x25\x20\x4f\x0d\ +\x7c\xe0\x83\xf4\xef\x90\x19\x2c\x21\x42\x2e\xea\xeb\xc0\xef\x14\ +\x9d\x1e\x09\xc8\x23\x43\x13\xf8\x81\x14\xbd\x87\x87\x2a\x49\x20\ +\x28\x59\xf9\x53\x07\x3e\x00\xfc\x1f\x37\xdb\x9e\xd9\x19\x4a\x71\ +\xcf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\x39\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ +\xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\ +\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x00\xd9\x49\x44\x41\x54\x78\ +\x5e\xed\x9b\x31\x0a\xc3\x50\x14\xc3\xfe\xfd\x0f\xdd\x94\x52\x77\ +\x56\xc1\x04\x67\x90\x41\x9e\x02\xf1\xd3\xfe\xcf\x39\xe7\xba\x99\ +\xd7\x1f\xdf\x2c\xf9\xd4\x75\x23\xdf\x9f\x3c\x34\x0a\x48\xd1\x11\ +\x0d\x0a\x50\x00\x8c\x58\x46\x01\x29\x3a\xa2\x41\x01\x0a\x80\x11\ +\xcb\x28\x20\x45\x47\x34\x28\x40\x01\x30\x62\x19\x05\xa4\xe8\x88\ +\x06\x05\x28\x00\x46\x2c\xa3\x80\x14\x1d\xd1\xa0\x00\x05\xc0\x88\ +\x65\x14\x90\xa2\x23\x1a\x14\xa0\x00\x18\xb1\x8c\x02\x52\x74\x44\ +\x83\x02\x14\x00\x23\x96\x51\x40\x8a\x8e\x68\x50\x80\x02\x60\xc4\ +\x32\x0a\x48\xd1\x11\x0d\x0a\x50\x00\x8c\x58\x46\x01\x29\x3a\xa2\ +\x41\x01\x0a\x80\x11\xcb\x28\x20\x45\x47\x34\x28\x40\x01\x30\x62\ +\x19\x05\xa4\xe8\x88\x06\x05\x28\x00\x46\x2c\xa3\x80\x14\x1d\xd1\ +\xa0\x00\x05\xc0\x88\x65\x14\x90\xa2\x23\x1a\x14\xa0\x00\x18\xb1\ +\x8c\x02\x52\x74\x44\x83\x02\x14\x00\x23\x96\x51\xc0\xaf\xee\xe4\ +\xd1\xcf\xe7\xdf\xb9\xa5\x52\x55\x4f\x58\xa8\x78\x00\x00\x00\x00\ +\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x2b\x43\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ +\x00\x46\xc9\x6b\x3e\x00\x00\x00\x09\x76\x70\x41\x67\x00\x00\x00\ +\x80\x00\x00\x00\x80\x00\x30\xe1\x31\x9a\x00\x00\x00\x06\x62\x4b\ +\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x2a\x6c\ +\x49\x44\x41\x54\x78\xda\xed\x7d\x07\x7c\x24\x57\x99\xe7\xbf\xaa\ +\x5b\x52\xab\x25\xb5\x72\xce\xa3\xd1\xe4\x64\x7b\x12\x66\xc6\xf6\ +\x18\x1b\x63\x1b\x0c\xac\x81\x73\x20\x18\xf0\x01\xb7\xbb\x2c\x9c\ +\x59\xdf\x62\x0e\x6e\x59\x96\x70\x7b\x07\x4b\xd8\x65\xd7\xec\xc2\ +\x82\xb1\x0d\x06\x6c\xd6\x01\xe3\x88\xc7\x01\x33\xe3\x09\x9e\x64\ +\x4f\x92\x34\xca\x39\xb7\xd4\x6a\xb5\x3a\xd4\x7e\xdf\xab\xaa\x56\ +\x55\x75\x55\x4b\x13\x3c\x92\x66\xf4\xe6\xf7\x4d\x57\x57\x57\xb7\ +\xaa\xde\xf7\x7f\x5f\x7e\xef\x49\x58\x6c\x4e\x2d\x8d\xa8\x86\xa8\ +\x42\xa3\x12\x22\x8f\xc3\xb5\x23\x1a\xb5\x10\x75\x68\xaf\xd1\x85\ +\xf0\x90\xd2\x22\x9f\x45\xcb\x20\xda\x48\xb4\x4d\x7b\x5d\xa1\xd1\ +\x99\xb6\x08\xd1\x71\x8d\x76\x13\xfd\x91\x68\xdf\x42\x01\xc5\xc5\ +\xd2\xea\x88\xfe\x86\x68\x27\x51\x90\x48\x79\x8b\x69\x8c\xe8\x29\ +\xa2\x4f\x13\x95\x2f\x76\xff\xdc\xb4\x7c\xa2\x2f\x10\x1d\x38\x0f\ +\x0c\x9f\x89\x5e\x21\xfa\xa4\x26\x7d\x16\xdb\x5b\xdc\x2e\x23\xfa\ +\xe5\x79\x1a\xe9\x67\x22\x19\xfe\x95\x68\xf9\xa2\x0d\x70\xee\xdb\ +\x95\x44\x5f\x25\xba\xea\x8c\xc4\x45\x7e\x01\xaa\xaa\xab\x51\x56\ +\x5e\x81\xbc\xbc\x3c\xf8\x7c\x3e\xea\x31\x09\x69\x69\x69\x98\x0a\ +\x4d\xf1\xa1\x68\xc3\xc3\x43\x18\x1e\x1a\x46\x67\x47\x3b\x5a\x5b\ +\x5b\xe8\xfd\xf0\x99\xde\xef\xa3\xda\xfd\x1e\x5a\x04\xc0\xd9\xb5\ +\xf5\x44\xdf\x3b\x1d\xc6\xe7\xe5\xe7\x63\xe3\xc6\xcd\x58\xbb\x7e\ +\x03\xd6\x11\xd5\x2f\x5b\x8e\x8c\x8c\x0c\x62\xb2\x64\x21\x4c\x1f\ +\xc3\xf2\x5e\xfb\x7c\xcc\xef\xc7\x91\xc3\x87\x71\xec\xe8\x9b\xd8\ +\xbb\x77\x0f\x76\xed\xfa\x93\x38\x77\x1a\xed\x21\xa2\x2f\x13\x35\ +\x2d\x02\xe0\xf4\x5a\x36\xd1\xb7\x89\xee\x20\x72\xcf\x74\xf1\x52\ +\x62\xf2\xd5\xd7\xbc\x13\x3b\x76\xbc\x43\x1c\xc7\x99\x09\x1b\x66\ +\x9f\x26\x08\xac\x9f\x1f\x78\x7d\x3f\xfe\xf0\xfc\x73\x78\xec\xb1\ +\x47\xd1\xda\xd2\x32\x9b\x67\x99\xd4\x9e\xe5\xeb\x44\xa1\x45\x00\ +\xcc\xdc\x6e\x26\xba\x97\xa8\x20\x29\x42\xb2\x73\x70\xfd\xbb\x6f\ +\xc2\x4d\xef\xbf\x19\xb5\xb5\x4b\x1c\x99\x9b\xe2\x76\x23\x25\x85\ +\xc8\xed\x82\x4b\x26\x72\xc9\x1a\x43\x01\x99\x8f\xd9\xa7\x8b\x29\ +\xe2\x55\x51\x14\x88\x7f\xa4\xd1\x63\x7c\x1c\x53\xdf\x3b\x81\xe4\ +\xf0\xa1\x83\xf8\xe5\x2f\x1e\xc4\x23\x0f\xff\x06\x13\x13\x13\x33\ +\x3d\x57\x8b\x06\xe8\x97\x16\x01\xe0\x3c\xea\x99\xf1\xb7\x24\xbb\ +\xa8\x9c\xf4\xf8\x6d\x1f\xfd\x04\xae\xbb\xe1\x46\xa4\x79\x3c\x71\ +\xc6\xc8\xcc\x18\x59\x86\x27\x2d\x15\xe9\x9e\x34\xa4\xa5\xa6\x20\ +\x95\x18\x2f\x49\x67\xdf\x35\xb1\x58\x8c\x48\x51\x01\xa2\x20\x41\ +\x52\x8c\xf9\x47\xf1\xeb\x5f\x3d\x84\x7f\xfa\xc1\xf7\xd1\xdf\xdf\ +\x3f\xd3\xcf\xb1\x4a\xfb\xe2\xb9\x96\x06\x0b\x1d\x00\x6c\xdd\x3f\ +\xac\x45\xec\x6c\x1b\x1b\x70\x1f\xb9\xe3\x93\xb8\xf6\xfa\x77\xc3\ +\xed\x76\x1b\x46\xb9\x8c\x0c\x62\x78\x66\x46\x3a\x32\xd2\x09\x10\ +\xf2\x5b\xdc\x15\xba\x74\x60\x24\x00\x26\x89\xc3\x06\xe5\xcf\xef\ +\xfb\x99\x06\x84\xbe\x64\xbf\x72\x90\xbe\xf3\x01\xfa\x8d\xa6\x45\ +\x00\x00\x1f\xd3\x46\xbe\x6d\x78\x36\x23\x23\x13\xb7\x7f\xec\x13\ +\xb8\xf9\xbf\xdd\x46\x8c\x4f\x31\x88\x76\x17\x7c\x99\x19\xc8\xce\ +\xca\x80\xdb\xe5\x9a\x93\x1b\x57\x8c\x9d\x6f\x50\x3b\x13\x81\x80\ +\x00\xc1\xbf\xfe\xcb\x0f\x11\x0a\x39\x0e\xf4\x11\x4d\xda\x3d\x73\ +\x31\x03\xe0\x5b\x9a\x38\xb4\x6d\xdb\xae\xd8\x81\xff\xf1\x57\x77\ +\xa1\xb0\xa8\x38\x3e\xd2\x98\xf1\x79\x39\x3e\xc1\xf8\x73\x21\xde\ +\xcf\x65\x93\x65\xb3\x1d\xd2\xd8\xd0\x80\xbb\x3e\xff\x39\xec\xd9\ +\xf3\x9a\xd3\x57\x38\xd4\xfc\x79\xa2\x1f\x9e\xed\xdf\x76\x2d\x30\ +\xc6\xf3\xfd\xfe\x82\xe8\x33\x4e\xa3\xfe\x73\x77\xdf\x83\x8f\x7d\ +\xf2\x33\xf0\xd2\x31\xe3\xdb\x45\xfa\xbd\x20\xd7\x87\xd2\xa2\x7c\ +\xa1\xe7\xe7\x63\x33\xaa\x05\x35\xfe\x90\x8f\xdb\x6e\xff\x30\x3d\ +\x8f\x17\xbb\x77\xed\x42\x34\x9a\x90\x42\x90\x89\x6e\xd0\xa4\xdf\ +\x1f\x2e\x16\x09\xe0\xd2\xfc\xe3\x0f\x38\xb9\x74\x5f\xfa\xdb\x6f\ +\xa0\xb8\xb4\x5c\x3c\x14\x77\x26\x8f\xf6\xe2\x82\x5c\x52\x01\x67\ +\x87\xf3\xe0\xe4\x14\x02\x13\x41\x84\xa6\xc2\x98\x98\x9c\x44\x34\ +\x12\x15\x62\x9c\x3d\x05\x06\x95\xc7\x93\x4a\xb6\x84\x17\x1e\x32\ +\x20\xcf\x56\x20\xbb\xdd\x32\x49\x04\x39\x6e\xa4\xbe\xf9\xe6\x11\ +\x7c\xe2\xe3\x77\xa0\xa5\xb9\x39\x99\x71\xf8\x3f\x2f\x74\x00\x24\ +\x65\xfe\x8e\x6b\xdf\x85\xbf\xf8\xfc\xdd\x22\x42\xc7\x1d\xc7\xc6\ +\x5e\x79\x71\x81\x30\xf0\x4e\x9f\xd9\x21\xf4\xf6\x0d\xa2\x67\x70\ +\x18\x03\x83\x23\x18\xf6\x8f\x93\x3e\x9e\xd2\x2c\x79\x8d\x74\xd7\ +\x4f\x99\xb6\xf0\xf9\x95\xc1\xc0\x6a\xa6\x20\x3f\x07\x15\xf4\xf7\ +\x2b\x4a\x8b\xe8\x9e\x4e\x5f\xea\xb0\xd4\x62\x70\xb1\x61\xca\xff\ +\xfc\xe4\x2d\x30\x08\x5e\x79\xf9\xa5\x73\x0e\x82\x85\x02\x80\xdf\ +\x38\x31\xff\xb6\x8f\x7e\x12\x1f\xba\xfd\xa3\x71\xfd\x99\xe5\xf5\ +\xa2\xbc\xb4\xf0\xb4\x0c\xbc\x40\x30\x88\x96\xf6\x1e\xb4\x75\xf5\ +\x62\x70\x78\x34\x6e\xad\xeb\xcc\x9d\x0a\x87\x31\x49\x46\x19\x8b\ +\xe2\x49\x06\x43\xdc\x8c\x53\xa5\x00\x8f\xd8\xd4\x94\x14\x72\x29\ +\xe5\x78\x3c\x80\xff\xe3\xfb\x29\x2e\xcc\x43\x7d\x4d\x05\x96\x2d\ +\xa9\x12\xde\xc6\xac\x19\xc3\x21\x67\x92\x28\x6a\xcc\x41\x22\x77\ +\x32\x8a\x2f\xfe\xaf\xbb\x71\x1f\x79\x0b\x0e\xed\xff\x12\xdd\x73\ +\x21\x02\xe0\xff\x13\xfd\x75\xa2\xe1\xe4\xc2\x9d\x7f\xfe\x57\x78\ +\xd7\x8d\xef\x8d\xbb\x53\x85\xf9\xb9\x24\xf2\xf3\x30\x5b\x1b\xaf\ +\xb3\x67\x00\xa7\x5a\x3b\xd1\xd5\x37\x10\x67\x78\x84\x98\x3c\x34\ +\xea\xc7\x88\x7f\x0c\xfe\xf1\x71\x02\xc7\xa4\x9d\x0e\xb6\x1f\xb9\ +\x04\x3a\xaf\xc7\x23\x28\x23\x3d\x1d\x5e\x22\xbe\x37\x45\x03\x43\ +\x5d\x55\x19\xd6\xad\xaa\x47\x25\x01\x74\xb6\x2d\x95\x40\x20\xa4\ +\x81\x16\x4c\xfa\xfb\xaf\xfd\x9d\xf0\x14\x1c\xda\x5f\x9e\xae\x61\ +\x38\xdf\x01\xc0\xe9\xd2\x1f\x27\x32\x5f\xc6\xe7\xff\xe6\x2b\xb8\ +\x7c\xdb\x95\xa2\x63\xf9\x7d\x79\x49\x21\x72\xb3\xb3\x66\xc9\xf8\ +\x7e\x1c\x6f\x6a\x85\x7f\x2c\x20\x98\x13\x26\x9d\xde\x33\x30\x80\ +\xee\xfe\x01\x8c\x12\xe3\x63\xca\xf4\x08\x9f\x42\x0a\x26\xa4\x0c\ +\x04\xa5\x74\x84\x91\x86\xa8\x64\x8e\x30\xbb\x95\x30\x52\x95\x10\ +\x59\x63\x41\x78\x95\x00\x5d\x1d\x99\xbe\x4f\xba\x37\xb6\x0d\x72\ +\xb2\x7c\xf4\x9a\x21\x2c\x37\xfe\x65\x96\x0a\x6f\xdf\xb8\x16\x15\ +\x25\x45\xb3\x03\x41\x8a\x5b\xa8\x12\x1d\x04\x3f\xba\xf7\x5e\x7c\ +\xe5\xcb\x5f\x72\xf2\x0e\xde\x7d\x3a\x2e\xe2\x7c\x06\xc0\x16\xa8\ +\x95\x34\x09\x31\xfd\x4f\x7f\xf6\x2e\xbc\xe3\xba\x1b\x45\x87\x70\ +\x88\xb6\xaa\xbc\x58\xf8\xf6\x33\xb5\x91\xd1\x31\xbc\x71\xb2\x59\ +\x8c\x6e\x66\xfc\x38\x19\x76\xcd\xed\x9d\xe8\xec\xed\x43\x34\x16\ +\x53\x6d\x00\xa4\x63\x50\x2e\xc0\xb0\x94\x8f\x51\x39\x07\x53\x92\ +\xe7\xb4\x6e\x3a\x3d\x16\x40\xb6\x32\x82\x5c\x65\x08\xf9\xb1\x3e\ +\xa4\x12\x6c\x74\xbd\x9e\x97\x93\x8d\xbc\xec\x9c\xb8\x7a\x62\x1b\ +\xe1\xca\x2d\x1b\x84\xdd\x30\x53\xe3\xb0\x74\xba\x66\xe3\xcc\x20\ +\x09\x46\xe8\x9a\x8d\xb3\x0d\x16\xcd\x57\x00\x70\xe1\xc6\x41\xa8\ +\xb5\x78\xa6\x76\xcb\x47\x3e\x89\xf7\x7d\xf0\x16\xd1\x11\x1c\xa3\ +\xaf\xad\x2a\x45\x86\x37\xb9\xb1\x17\x8d\xc6\xd0\xd0\xdc\x8e\xd6\ +\xce\x1e\xc1\xf8\x20\x59\xf2\xc7\x9a\x9a\x05\xe3\x79\xb0\x87\x09\ +\x63\x3d\x72\x19\x51\x39\xc6\xe4\xec\x73\xfa\x20\x39\xb1\x41\x94\ +\xc6\x3a\x51\x14\xeb\x21\x4b\x36\x26\xee\x3b\xcf\xe7\x43\x61\x5e\ +\x9e\x50\x19\x0c\x8c\x4b\xd7\x2e\xc7\xa6\x75\x2b\x67\x8c\x46\xb2\ +\x2a\x10\x51\x4b\x0d\x04\x77\x7f\xe1\x2e\x27\x9b\x80\xfb\x6e\x2b\ +\x66\x11\x36\x9e\xaf\x00\x78\x42\x13\x65\xa6\x76\xd5\x35\xd7\xe1\ +\x53\x7f\xf9\x05\x4d\xec\x4b\xa8\xad\x2c\x43\x56\xa6\x37\xe9\x0f\ +\x8d\x07\x26\x70\xe4\xc4\x29\x4c\x90\x2e\x8f\x90\xa8\x6f\x68\x69\ +\xc3\x89\xe6\x56\x11\xa7\x0f\xd1\xf8\x6c\x75\x2d\x41\x97\x5c\x89\ +\x98\x94\x68\x34\x96\xe7\x7a\xb0\xb1\x26\x07\x2b\x4a\x33\x51\x57\ +\xe4\x45\x49\xb6\x07\x99\x1e\xb3\x40\xea\x19\x9d\x44\xef\x68\x08\ +\x8d\x7d\x01\x1c\x6c\xf5\xe3\x60\xfb\x28\x02\xa1\x44\x9b\x81\x55\ +\x45\x45\xb4\x15\x95\xb1\x16\xa1\x26\x58\x6d\x15\x93\xbf\x9f\x97\ +\xad\x02\xae\x30\x2f\x07\xef\xba\x6a\x0b\x3d\x4f\x72\x49\xc6\x86\ +\xa1\x97\x41\xa0\x19\x86\x1f\xfa\xe0\x07\x9c\xbc\x83\x59\x79\x06\ +\xf3\x11\x00\x1c\xe2\x4d\x80\x75\xdd\xb2\x15\xf8\x3f\xdf\xfc\x0e\ +\x89\x4f\x35\x9e\x5f\x5d\x5e\x32\xa3\xce\xef\x1d\x1c\x12\x23\x9f\ +\x25\xc0\x30\x19\x76\xbb\x0f\xbd\x21\x00\xc1\x23\xbe\xc5\x55\x87\ +\x4e\xb9\xca\xc4\x78\x17\x81\x6a\xdb\xb2\x3c\xbc\xff\xd2\x12\x5c\ +\xb7\xa6\x10\x35\x05\xde\xd3\xbe\xf9\x48\x54\xc1\xbe\x96\x11\xfc\ +\xfe\x70\x1f\x1e\xde\xdb\x8d\xe6\x81\x89\x04\x20\x54\x46\x9b\x51\ +\x45\x40\x60\x89\x90\x4e\x06\x63\x45\x71\xb1\xf0\x22\x98\xae\xdd\ +\xbe\x09\x55\x65\xc5\x49\xff\x06\xc7\x1d\x74\x10\xb0\x8b\x78\xed\ +\x35\x57\x3b\xc5\x09\xae\xc2\x0c\x59\xc4\xf9\x06\x00\x7e\x72\xae\ +\xa4\xcd\x31\x9e\xcc\x24\x23\xea\xeb\xdf\xfe\x67\xe4\x17\x14\x0a\ +\xe6\x97\x14\xe5\xa3\xa4\x30\x3f\xe9\x0f\xb1\x4b\xd7\xd9\xdd\x27\ +\x0c\xba\x93\x34\xe2\x0f\x1e\x3b\x29\xc4\x7f\x9f\x54\x8c\x93\xee\ +\x55\xa4\xdb\xd3\xe2\xd7\x16\x64\xa5\xe2\xbf\x5f\x51\x85\x5b\xb6\ +\x94\xa3\xd8\x97\x76\x4e\x1f\xe8\x40\xdb\x28\x7e\xf2\x4a\x1b\x1e\ +\x3f\xd0\x8b\xa9\x48\x6c\xda\x56\x20\x83\x71\x45\xe4\x0d\xb2\x15\ +\x86\x85\xb1\x58\x46\x20\xc8\xce\xcc\x14\xcf\xb7\x6d\xd3\x3a\xac\ +\xaa\xaf\x4d\xfa\xbb\x1c\xe3\xf0\x68\x86\x21\x07\x8b\xae\xbf\xee\ +\x9d\x76\xf9\x83\x16\xa8\xd5\xcd\xa1\x85\x12\x0a\x66\x8b\x7f\x63\ +\x82\xd1\xf7\xb9\xbb\x51\x57\xbf\x5c\x24\x4e\x58\x44\x56\xce\x30\ +\x42\xda\x89\xf9\xdd\xfd\x83\x82\xe1\xaf\xd1\xa8\x3f\xd6\xd4\x42\ +\x42\xd7\x85\xa3\xae\x75\x68\x76\xd7\xc7\x2d\xf9\xfc\xcc\x54\xdc\ +\x75\xdd\x12\xfc\xbf\x0f\xad\x12\xa2\xde\xed\x92\x10\x22\x26\x9d\ +\x4b\xca\xcd\x48\xc1\x3b\x56\x16\xe0\x03\x9b\xca\x30\x39\x15\xc3\ +\xb1\xee\x31\x61\x77\x44\xa4\x54\xf4\xb8\x2a\xc4\x7d\xb1\x9d\x30\ +\x46\x2e\x27\xdf\x2f\xbb\x8f\x6d\x9d\xbd\xc2\xf2\x2f\x2a\xc8\x75\ +\x7c\xc6\x70\x38\x4c\x36\x01\xc7\x09\x24\x14\x15\x15\x8b\x20\xd8\ +\x4b\x2f\xbe\x98\x60\x82\x68\xaf\x3b\x17\x82\x04\x78\xbb\x66\xf5\ +\x9b\x4f\x5e\x79\x35\xee\xfc\x8b\xbb\xc4\xc8\x60\x11\xb9\xa2\xae\ +\x3a\x69\x68\xb7\x83\x5c\xbc\xbe\x81\x21\x11\xbc\x79\x71\xf7\x7e\ +\x72\xef\x06\x11\x40\x06\x8e\xa4\x5c\x42\xee\x5c\xa6\x8a\x7a\x7a\ +\xea\x5b\xb7\x56\xe0\xce\x2b\xab\xe0\x4d\x75\xbd\x75\xbd\xa2\x24\ +\x9e\x6a\xee\x9f\xc0\xb7\x9e\x6c\xc0\xc1\xb6\xe9\x12\x31\x5f\x6c\ +\x04\x6b\x23\xaf\x93\x93\x39\x25\xa4\x40\x79\xb1\x9a\xc4\xda\x7a\ +\xc9\x6a\xac\x5d\x51\x97\x34\x62\x98\x4b\x1e\x84\xac\x45\x0c\xdf\ +\x73\xe3\xf5\x76\x09\x24\xae\x2c\x5a\x03\x87\xf2\xb2\xf9\x04\x80\ +\xbd\xd6\xd1\x9f\x99\x99\x85\x6f\x7c\xf7\x5e\x64\xf9\xb2\x85\xd5\ +\xbb\xb4\xa6\x22\xa9\x91\xd4\xd3\x37\x88\xfe\xa1\x61\x4c\x4d\x45\ +\xf0\xec\xab\xbb\xd1\x3f\x38\x4c\x3e\x51\x0e\x0e\xbb\x2f\x15\x23\ +\x4e\xb8\x5e\x64\xd8\x7d\xe9\x3d\xf5\x58\x5a\x9c\xe9\xfc\xf4\xd2\ +\x99\x76\x93\x32\x23\x00\xf4\xf6\xe8\xbe\x6e\xfc\x07\xa9\x86\xc9\ +\xb0\xaa\x16\x3c\x4a\x10\xeb\xc3\xfb\x08\xaa\x01\xf8\x32\x32\x50\ +\x51\x52\x22\x40\x70\xf9\x65\x6b\xb1\xb2\xbe\xc6\xd9\xed\x24\x35\ +\xe0\xd3\x32\x9c\x9c\x45\x7c\xc7\x8e\x2b\xed\x54\x01\x87\xd1\x6f\ +\x9d\xcf\x2a\xe0\xbd\x44\x77\x25\xb8\x7c\x1f\xfb\x14\xea\x97\xaf\ +\x52\xc5\x75\x6e\x36\x59\xca\xb9\x8e\xc5\xd5\xec\xdb\x33\xc3\xb9\ +\x1c\xeb\xd9\x3f\xee\x46\x1f\x19\x80\xcc\xfc\x43\xee\x8d\x24\xf2\ +\xd5\x24\x0d\x1b\x78\xf7\xbc\xbb\x1e\x39\x24\xfa\xa7\xc8\x30\x64\ +\x9d\xac\x92\x42\xef\x0d\x14\xb1\x92\x76\x5d\xd4\x81\x8c\xbf\x63\ +\xa4\x84\xdf\x9c\xbe\x76\x49\x51\x06\x36\xd6\xe6\x08\x49\xc0\x5e\ +\x43\x84\xee\xb1\x5f\x2e\x41\x7e\xac\x1f\x4a\x38\x20\x24\x98\x8f\ +\xa4\x01\x4b\xb4\x82\xbc\x6c\x01\x0a\xbb\xe7\xe6\x20\x16\xbb\x87\ +\x1c\x0f\xe1\x2c\x62\x88\x5c\xdc\xdd\xbb\x77\x59\xbb\x92\x25\x00\ +\x57\x1c\xf7\xce\x57\x09\xc0\x13\x35\x36\x18\x4f\x54\x54\xd5\xe0\ +\x7f\x7f\xe3\x1f\x45\xd0\x84\x83\x20\x6c\x14\x39\xc5\xf7\x27\xa7\ +\xa6\x84\xde\xe7\xf2\xab\x17\x76\xef\x45\x53\x6b\x87\x81\xf9\x6e\ +\xf1\x94\x37\x5d\x52\x8a\x3f\xbb\xac\xc4\xf2\xc4\x92\xf9\xbd\x34\ +\x5b\x19\x29\x39\x0f\x71\x65\x16\xaa\xc0\x10\x69\x1c\x0b\x46\xf0\ +\xfd\xe7\x9b\xd1\xd8\x33\x2e\xae\xe3\xa8\xe2\x25\xe1\x3d\x42\x12\ +\x14\xe4\xe6\x0a\x57\x91\xed\x81\x9b\xae\xdd\x8e\xac\x0c\xaf\x43\ +\x08\x5a\x16\x6e\x24\xc7\x11\xb8\xa8\x64\xeb\xe6\x4d\x76\x95\x45\ +\x0c\x80\xf7\xcf\x47\x09\x70\xa3\xdd\xe8\xbf\xed\xe3\x9f\x41\x59\ +\x45\xa5\x30\xfc\x38\xcc\xcb\xc1\x1e\xbb\xc1\xcf\x11\x3c\x16\xfd\ +\x6c\xed\x1f\x3e\xde\x40\x3e\x7f\x23\x02\x52\x06\x0e\xa4\x6c\x45\ +\x94\x5c\x46\x2e\xfa\x7b\xff\x65\x65\xb8\x66\x75\xe1\xf4\x48\x8c\ +\x8f\xcc\x58\xe2\x28\x8d\xda\x8c\x5c\x72\xeb\x13\xce\xdb\x51\x24\ +\xe6\xf0\x7d\x87\x6b\x22\x6a\xa1\xe0\x86\x2a\x1f\x1a\xfb\x83\x18\ +\x09\x86\x05\x60\x07\xe5\x42\x14\x45\xbb\x31\x35\x19\x20\xbf\x3f\ +\x55\x8c\xf0\x5e\xb2\x6b\xea\x6a\x2a\x04\xf8\xac\x7d\xc0\xc0\x87\ +\xb0\x91\xdc\x48\xa5\xeb\x39\x1b\xba\x73\xe7\x0b\xd6\x2e\x5d\xa1\ +\xa9\x82\xc1\xf9\x06\x80\x1f\x10\x2d\xb5\x8e\xfe\x0f\x7e\xf8\x13\ +\xf1\xc0\x47\x55\x79\x89\xe3\x97\x87\x47\xc7\x10\x22\x09\xd0\x4b\ +\xc6\xde\xf3\x7f\xda\x23\x7c\xfc\x03\x69\x5b\x30\xe5\xf2\x70\xd2\ +\x00\x37\xac\x2f\xc6\xe5\x4b\xf3\x30\x15\xd3\x3a\x3d\x66\x61\xa8\ +\xf1\xbc\x7e\xcc\x9f\xc7\xac\xe7\x66\x41\x09\xdf\x89\x25\xfe\x86\ +\xe9\x58\x05\x03\x5b\x01\x6b\xca\x7d\x38\x35\x38\x81\x51\x92\x08\ +\xac\x0e\x46\xe5\x3c\x94\x44\x3b\x11\xa0\x11\x9d\x9d\x95\x25\xec\ +\x1a\x6e\x25\x85\x79\x0e\x5e\x41\x24\x1e\x25\x5c\xb3\x66\x2d\x1e\ +\x7c\xe0\x7e\xbb\x8a\x63\x76\x7f\x9e\x9c\x4f\x00\x58\xae\x45\xac\ +\x12\x74\x7f\x49\x99\x1a\x05\xe6\x84\x89\xd7\x21\x8d\xca\x05\x1a\ +\x9c\xb1\x0b\x47\x22\x78\xec\xb9\x97\xc4\xfb\x37\x53\x37\xc0\xef\ +\xce\x13\xa6\xfe\xe6\x25\xb9\x78\x7b\x7d\x5e\x22\xa3\xad\x0c\x37\ +\x82\xc2\x8e\x61\xa7\x43\x4e\x60\x88\xc5\x12\xef\xc1\x20\x81\x78\ +\x10\xaf\x2c\xcd\xc2\xf1\xbe\x00\x82\xa4\xd7\x43\x72\x3a\xa2\xc4\ +\x9e\xbc\xe8\x00\x82\x64\xd4\xe5\xfa\x7c\x64\xd7\x0c\xa3\xba\xbc\ +\x58\x48\x85\x04\x2d\xa3\x95\x1d\xa7\x09\x09\xe0\x12\x52\xc3\x41\ +\x0a\xf0\x80\x0b\xcf\x17\x00\x70\x9a\x77\x9b\xf1\x44\x5e\x7e\x21\ +\x3e\xf4\x91\x3b\x45\xa9\x36\x3f\x4c\x65\x79\x71\x5c\x8d\x9a\x88\ +\x1e\x78\xd4\x3f\x2e\x44\xff\xee\x83\x47\xd0\xd2\xd9\x8d\x2e\x77\ +\x39\xda\xd2\x96\x0a\xb1\x5f\x91\xef\xc5\x35\xab\x0a\x11\x56\x8c\ +\xa3\x19\x89\x0c\xd3\x3f\x57\x0c\xd7\x28\x0e\xcc\x55\x92\x30\xdd\ +\xf1\xbc\x95\xf1\x36\x40\xd0\x24\x01\x07\x90\xab\xf3\xd2\x71\xac\ +\x37\x80\x28\xfd\x2d\xbf\x2b\x17\x39\xd1\x41\xb8\xc3\x63\xc2\xfe\ +\xe1\x64\xd0\xc8\xd8\x38\x6a\xab\xca\x6c\xd5\x21\x4b\x81\x4c\x21\ +\x05\x64\xd4\xd7\xd7\xe3\x3f\x7e\xf2\x63\x11\x2f\x30\x26\x16\x89\ +\x4e\x69\x36\xd7\xbc\x00\x00\x87\x7c\x4d\xa9\xb0\x6b\x6e\x7c\x1f\ +\x96\x6a\x96\x3f\xd7\xf1\x89\x22\x0a\xb5\xe4\xc6\x44\x3c\xda\x43\ +\xf4\x70\x1c\xe2\x7d\xfa\xe5\xdd\x98\x22\xb1\x79\xd8\xbb\x19\x31\ +\xd9\x85\xb4\x34\x17\x6e\x58\x5b\x24\xc4\x21\x7b\x59\x61\x4e\xf9\ +\x52\x67\x33\x18\xd4\x57\x65\xfa\x9c\xf1\x73\xeb\x35\x31\x1b\xb2\ +\x9e\x8f\x3a\x5c\x17\xb5\x39\x8e\x3a\x5c\x63\x78\xe5\x70\xb4\x2f\ +\xdd\x8d\xe6\xa1\xa0\xd0\xf7\xa3\x04\x82\xb2\x70\x1b\x82\x93\x41\ +\x91\x44\x9a\x08\x86\x50\x94\x9f\x63\xdb\x2f\x3c\x28\xb8\x4e\x82\ +\x6b\x08\x78\xee\x43\x57\x67\x27\x0e\x1f\x4a\x98\x66\xc8\x3a\xe4\ +\xa7\x46\x9d\x30\x97\x81\x1f\x53\xb6\x8f\x13\x24\x9b\x2f\xbf\x52\ +\x7b\x10\x09\x39\xd9\x3e\x31\x12\x6c\x2d\xff\x50\x58\x20\xfd\x8f\ +\xfb\x0f\x89\xeb\x9b\x3c\x2b\x11\x71\xa5\x8a\xd1\xbf\xa9\x26\x17\ +\x0a\x31\x3f\xc0\xa1\x57\xc9\x60\xed\xeb\x95\x22\x92\xd1\xba\x37\ +\x78\x02\x92\x8d\x67\x90\xe0\x0d\x48\xf6\x26\xbe\xa3\xf5\xaf\x4c\ +\x7f\xa6\x18\x3e\x50\x0c\xef\x15\xc5\x74\x6d\x71\xb6\x47\x48\xb0\ +\x0e\x02\x41\x50\xca\x24\xa9\xb6\x04\xb5\xa1\x46\xf4\x0f\x0d\x91\ +\x0d\x50\x88\x83\x6f\x36\xe0\x9a\x2b\x36\xdb\xf6\x8b\x3f\x30\x11\ +\x2f\x85\xbb\xf5\xb6\xdb\x71\xff\xcf\xef\xb3\x5e\xc2\x12\x97\xd7\ +\x27\xe8\x9c\x6b\x00\xbc\x2f\x21\xe1\x43\x23\x3f\xcb\x97\x23\x18\ +\x9a\xed\xcb\x12\x80\xb0\xe3\x3f\x57\xe8\x30\x2f\x07\x86\x86\x85\ +\xcb\x37\x21\x7b\xd1\xe3\xa9\x14\xcc\xe7\x58\x7e\x81\x2f\x15\x13\ +\x3a\xf3\x05\xd3\x15\x0b\x00\x8c\x4c\x57\x2c\x20\x50\xec\x5d\x44\ +\x58\x3f\x9f\xc9\xf5\xb3\x01\x86\x62\x05\x83\x0e\x04\x25\x01\x0c\ +\x6b\xca\xb3\xd0\x33\x16\x42\x84\x9e\xa3\xdd\xb3\x14\x15\x53\x2d\ +\x18\xf2\xfb\x51\x90\x97\x87\xc1\x11\x3f\x7a\xfb\x87\x50\x54\x90\ +\x68\x10\x4e\x91\x1a\xe0\xb2\x35\xce\x13\xf0\x24\xd7\xea\x9a\x1a\ +\xbb\xb9\x88\x9c\x69\xfd\xd1\x5c\xab\x00\x36\x46\x4c\xf3\xf8\xae\ +\xb9\xe1\xbd\xa8\xa8\xae\x15\x9d\x5f\x5e\x52\x20\x44\x99\x5d\xf4\ +\x23\x12\x56\xab\x72\x5f\x20\xab\x7f\x60\x78\x04\x0d\xde\xd5\x18\ +\x4f\xcd\x15\x76\xc3\x86\xaa\x6c\x21\x19\x22\x5c\xde\xc5\x31\x77\ +\xf1\x6a\x3c\xb6\x9e\x33\xbe\x37\x9c\x83\xf5\x1a\xb5\xdc\xc6\xf4\ +\x5e\xa7\x18\x12\x7f\x2b\x66\xfc\x8c\xdf\x2b\x89\xef\xe3\xc7\xd0\ +\xde\x4f\x1f\xab\x60\x95\x30\x34\x11\x16\x6a\x4d\x56\xa2\xc8\x0d\ +\x0f\xc6\xeb\x1e\x23\x64\xf8\x56\x94\x15\xd9\x47\xc5\xa8\x79\x3d\ +\x6a\x52\x6b\x70\x60\x00\xaf\xbd\xb6\xdb\xce\x1b\x78\x70\x2e\x25\ +\x40\x35\x6c\xd6\xe0\x59\xb5\xf6\x52\x31\xfa\x39\xb0\x91\x41\x62\ +\x4c\xb1\x19\xfe\xfa\x29\xce\xef\x1f\x3f\xd5\x8a\x49\xd9\x83\x5e\ +\x6d\xf4\x17\xd2\xe8\x67\xa9\x11\x8c\xc6\xb4\x51\xae\x4c\x8f\x76\ +\xc9\x22\xfa\x25\xbb\xd1\x6f\x90\x16\xb3\x09\x0e\x25\x13\xfb\xb0\ +\x88\xf8\x84\x51\x6f\x91\x0a\x16\x35\xc0\xbe\x61\x71\x76\x1a\x5a\ +\x46\x82\x64\xc8\xc5\xd0\x91\x5e\x87\xea\x60\x23\xd9\x3c\xa3\x64\ +\x03\xe4\xa3\xab\x6f\x10\x41\xb2\x07\x38\x35\x6c\x6d\x5c\xc7\x98\ +\x9f\x93\x2d\x7e\xeb\x1d\xd7\x5c\x8b\x1f\x7c\xff\x7b\x76\x6a\x80\ +\x07\x7f\x74\xae\x00\xb0\xcd\x7a\xa2\xb4\xa2\x0a\x99\xbe\x6c\xc1\ +\x74\xb5\xc8\x43\xb2\x15\xff\x62\xd6\x2d\x31\xfb\xcd\x86\x26\x71\ +\x6d\x57\x7a\x35\x14\x02\x0c\x33\x6f\x70\x32\x82\xc3\xbd\xe3\xa2\ +\x68\x23\xd3\xe3\x42\x46\x5a\x0a\xf8\x23\x33\x00\x0c\x4c\x97\x2c\ +\x0c\xd5\xcf\x29\x06\x15\xa0\xdf\x84\x34\x8b\x18\xbf\xe2\x04\x02\ +\xc5\x86\xe1\x16\x30\x58\x81\xa0\x19\x76\xc5\x3e\x0f\x3a\x86\x83\ +\x22\x97\xd1\x97\x56\x8e\xd2\x50\x3b\xc6\x03\x01\x11\x26\xe6\x94\ +\x77\x7d\x6d\xa5\x8d\x8a\x8c\x89\x52\x76\xae\x23\xbc\xe4\xd2\xcb\ +\x48\xad\xfa\xac\xeb\x13\x64\x6a\x79\x97\xd7\xe6\x0a\x00\x5b\x13\ +\xf4\xff\xb2\x95\xda\x88\x57\x0b\x29\x63\xb1\x98\x63\xd8\x53\x21\ +\x00\xbc\x71\x52\x4d\x6e\xf5\x78\xab\xc5\xe8\x67\x62\x37\x6a\x24\ +\x14\xc1\x08\xa9\x08\x8c\xf3\xb9\x20\xd2\x53\x19\x08\x6e\x91\xf5\ +\xe3\xe3\x34\xb7\x6c\x60\xb6\x26\x25\x14\xed\x58\x51\xcc\x76\x83\ +\x62\x33\xda\xa5\x99\xc2\xbc\x4e\x3a\xdf\x00\x08\xeb\x68\x4f\x02\ +\x00\x9f\x37\x05\x92\x7f\x12\x0a\x75\x47\x37\x3d\x2b\x03\x60\x64\ +\xcc\x2f\x82\x43\x5d\x3d\xfd\xa8\xab\xb6\x5f\x6f\x8a\xa5\x40\x2a\ +\x0d\x00\xb2\x86\xf1\xb6\xb7\x5d\x8e\x67\x9f\x79\xda\x6e\x10\xce\ +\x1f\x00\x54\xd7\x2d\x8b\x8b\x7c\x76\x71\x38\xa9\x93\x20\x79\x65\ +\xb5\x02\x78\x88\x8d\xa0\x81\x21\x8c\xa6\xe4\x62\x32\x25\x43\x65\ +\x8a\x98\xe7\x2d\xa9\x93\xa6\x24\x49\x7b\x0f\x52\x07\x0a\x89\x4a\ +\xd2\xde\x04\x0c\x3e\xef\x72\x49\x48\xe7\x02\xcb\x14\x19\x9e\x14\ +\x17\x91\xac\x4d\xc9\x32\x72\x58\x99\x7d\xca\x44\xb1\xbc\x51\x1c\ +\xbc\x00\xc5\x01\x04\x33\xbd\x8a\xfe\x70\x63\x9c\xa4\xdb\x88\xa7\ +\x10\x21\x39\x4d\x54\x35\x71\x5f\x0d\xfb\xc7\x30\x35\x15\x16\x41\ +\x1f\x6b\xe3\x09\x2e\x39\x8a\x9a\xf1\xdc\xb4\x69\xb3\x1d\x00\xb6\ +\xce\xa5\x0d\xb0\xc6\x7a\xa2\xa2\xb2\x56\x3c\x94\x88\x62\xa5\xa4\ +\x98\x4a\xb3\xf5\x96\xc2\xc6\x10\x31\xab\xa9\xad\x43\x35\x70\xd2\ +\x8a\xb5\xd1\x6f\x64\xba\xe1\xbd\xe9\x58\x7d\x25\xff\x01\xe3\x91\ +\x28\xc6\xd9\x4e\xe0\xda\x3d\xfa\x4e\x1a\x49\x95\x34\x02\x02\x4b\ +\x87\x54\x02\x08\x17\x86\x24\xc8\x7c\xdd\x45\x54\x1c\x50\xa0\xd8\ +\xa9\x02\x0b\xc3\x67\xcb\xfc\x98\x62\x3a\xe7\x49\x25\x00\x4c\xa9\ +\x75\x86\x43\xf4\xcc\xa5\xc1\x36\xb2\x81\x82\xc8\x24\x63\xb0\x7f\ +\x68\xc4\xb6\x3a\x8a\xa3\x87\xfa\x80\x5a\xb9\x6a\xb5\xdd\x4d\xaf\ +\x98\x2b\x00\x70\x85\x83\x29\xb6\xeb\x49\x4f\x47\x4e\x7e\x81\x78\ +\x5e\x5e\xa4\x41\x71\xf0\xfd\xdd\x34\xfa\x19\x00\xad\x1d\x5d\x2a\ +\x00\xbc\x25\xc9\x01\x20\x1b\xfc\x7f\xe3\x71\x9c\xd4\xf7\xd4\x55\ +\xa2\x7a\x07\x9a\xeb\xc8\x31\x88\x54\x06\x85\x5b\x22\xd0\x49\xe2\ +\xef\x4a\xc9\x04\x81\x92\xe4\xa4\x62\xb1\x0d\x66\x3b\xf2\x0d\xc7\ +\x6e\x02\x27\xe7\x35\xf8\xcd\x30\x49\x01\x06\x00\xcf\x66\xe2\xb9\ +\x06\x3c\x93\xa9\xd8\xc6\x1d\x8c\x72\x84\x91\xa4\x03\x7b\x52\x6b\ +\xd7\xad\x73\x02\x80\x6b\x2e\x00\xb0\xd4\x7a\xa2\xa0\xa8\x34\xce\ +\x74\x0e\xff\x3a\x02\x80\xa4\x03\xf3\xad\xb3\xb7\x9f\x0b\xac\x11\ +\x48\xcb\x99\x06\x40\x9c\xf9\x66\x10\xd4\xe5\xa5\x63\x5b\xa5\xcf\ +\xcc\x7c\xa3\x0d\x60\x17\x00\xb2\x49\x19\xab\x40\x50\x69\xd6\x45\ +\x20\xc9\xbc\x00\x13\x38\xcc\xcc\x7f\xe8\xcd\xfe\x04\xc0\xf0\xa4\ +\xd1\x08\x49\xad\xd1\x74\xf2\x9c\x87\xd5\xe9\x6c\x7c\xfb\xfe\xf1\ +\x80\x63\x7f\x85\xc2\x11\x21\x4d\xd9\x08\xcc\xcd\xcd\xb5\xae\x5e\ +\xc6\xbc\xaf\x99\x0b\x00\x24\xd4\xfa\xe7\x17\x16\xc7\x1f\x82\x73\ +\xff\x31\x3b\xfd\xcf\x93\x3e\x5d\x2e\x21\xda\xd8\x06\x08\xa4\x64\ +\x23\xa6\xa5\x7b\x13\x46\xbd\x61\xb4\x6f\xab\xf2\xe1\x67\x37\xd6\ +\x63\x21\xb5\x07\x18\x00\x16\x8f\x42\x76\x4b\xc2\xa0\x0b\xa6\x66\ +\x21\x2c\xa7\x88\x7e\xe0\x32\xb0\x40\x60\xd2\xb6\xbf\x44\x50\x88\ +\x24\x80\x22\x12\x69\x12\xaa\xab\x6b\xec\x96\xaf\xab\x90\xe7\x03\ +\x00\x7c\x39\xb9\xf1\xb9\x79\x6c\xd0\x98\x67\xde\x2a\xf1\xd0\x30\ +\x1b\x81\x3c\x6f\x4f\xc4\x01\x52\x7d\xd3\xcc\xd6\xc9\x65\x7d\xaf\ +\x8b\xce\x85\xd5\xc2\x56\x52\x60\x7a\xae\x89\x94\x2c\x11\x0d\x8d\ +\x91\x6b\xc0\x99\x50\x4e\x02\xd9\xf5\x99\xf1\x7c\x79\x45\xa5\xdd\ +\x9f\xaa\x99\x8b\xde\x49\x58\xc5\x8b\x17\x73\xd0\xa7\x58\xbb\xd9\ +\xcd\xb3\x79\x18\x76\xff\x58\xff\x73\xe9\x97\x30\x72\x52\x32\x13\ +\x01\x60\x62\xbe\x6b\x5a\x12\x2c\xb0\x16\xa1\x9b\x8e\x48\x5a\xe4\ +\x91\x89\x27\x98\x1a\xa4\x9b\xf0\x7c\xa0\xce\x5a\x66\xc9\xa8\x1b\ +\x7c\x09\x00\x88\x4c\x03\x20\x37\xcf\xb6\xc2\x38\x67\x2e\x54\x40\ +\xa6\xf5\x44\xba\x37\x33\x1e\x03\xe0\x07\x62\x64\x5b\x9b\xac\x4d\ +\xff\xe6\x00\x87\xd0\x6f\x29\x1e\x33\xc3\x75\x57\x50\x96\x13\x8d\ +\xbe\x05\xd6\xa2\xd6\xc0\x14\x0c\x12\x80\x19\xef\x56\x93\x3d\x1c\ +\x2b\x11\x8b\x4c\x85\xa7\xa8\xcf\x12\xe7\x33\xa8\x00\x50\x55\x48\ +\x6e\x6e\xde\xbc\x01\x80\x6d\x74\xcf\x68\xc8\xd8\x19\x35\x5c\x02\ +\xcd\x31\x80\x61\x4d\x02\x44\x49\x0f\x26\x02\x40\x36\xbc\x37\x18\ +\x87\x0b\x12\x00\xd6\x68\xa5\x12\x7f\x16\x91\xf5\xd4\x18\x2c\x52\ +\xde\x9c\x1b\x71\x08\x9b\x8b\xb5\x0c\x14\xe7\x3e\x98\x0b\x00\xd4\ +\x24\xa8\x00\x96\x00\xd0\xad\x5d\x97\xed\xc3\x88\xf9\x80\xda\xb2\ +\x29\xa6\x11\x61\x02\x81\xcd\xf1\x02\x54\x01\x1c\xe9\x14\xb1\x00\ +\x01\x6a\x1e\xea\x06\x40\x5b\xbc\x14\xee\x17\x5e\xd3\xc0\xae\xcf\ +\x58\x45\x28\x5a\x74\xd3\xe5\x50\x50\x3b\x2f\x24\x80\xa4\xa7\x7d\ +\x09\xe5\x4e\x16\xad\xfe\xb0\x92\x51\x3c\xc6\x99\x2f\x27\x7a\x01\ +\x46\x10\x2c\xb4\x66\xbc\xe7\x78\x77\xc8\x6a\x86\xc8\x06\x00\xdc\ +\x79\x76\xfd\xa6\xc4\xa6\x25\xab\xa3\x67\x3d\x07\x8f\xd7\x61\x3d\ +\xc1\x2b\x66\xea\x36\x00\x5b\xae\x76\x33\x7f\x84\x21\x2c\x4b\xe6\ +\x9c\x7e\x9c\xf9\x36\xb1\x00\x59\x32\xe7\xfd\x17\x22\x00\xa4\x69\ +\x9e\x9b\x40\xa0\xf5\x81\x2e\x0f\xf5\x55\x48\x6c\xf3\x26\x9a\x0d\ +\x10\x89\x46\x6c\xed\xcd\xb9\x00\x40\xc4\x4e\x59\xe9\x0f\x10\x8d\ +\x45\xe1\x52\x64\x5b\x83\x86\xf3\xfc\xb9\xbe\x2c\xad\x2b\x62\x66\ +\x9d\x6f\x07\x00\x1d\x20\x0b\x15\x00\xb6\xa3\x56\xa6\xfe\x51\xbb\ +\x50\x4c\x0e\xd5\xd6\x35\xb6\xb5\x01\xe2\xb6\x95\xe4\x2c\x02\xe6\ +\xe0\xf1\x26\x13\x4e\x4c\x4e\xc4\x1f\x80\xf5\x99\xdb\x46\x30\xb1\ +\xc5\xcb\x12\x40\xaf\x10\x4e\x8b\x4e\x1a\x18\x0f\x7b\x3b\x40\x5e\ +\xc0\x12\xc0\x34\xfa\x15\x93\xdc\x4f\x89\x4c\x6a\x23\xdc\x15\x5f\ +\x2b\x21\xe6\x60\x37\xe9\xfd\xea\xb7\x5f\xae\x7e\x7c\x2e\x00\xd0\ +\x63\x3d\x31\x21\x66\xc6\xaa\x0f\xca\x16\x6d\x5a\x6a\xe2\xc3\x84\ +\x42\xaa\xcf\xcb\x33\x60\x04\xfa\xa7\xc6\xcc\x8c\x4f\x66\x0c\x2e\ +\x44\x00\x28\x76\x4a\x50\x15\xfc\xe9\x53\xe3\x9a\x04\x98\x5e\x16\ +\xcf\xde\x73\x9a\x36\xa8\x87\x86\x86\xec\xfe\xd2\xc0\xbc\x00\x80\ +\x7f\x74\x38\x2e\xaa\x78\x92\x87\xdd\x3c\x00\x9e\xfe\xc5\x48\xd7\ +\x13\x1f\x19\x93\x7e\x43\xc6\x4f\x72\x96\x00\x32\x2e\x10\x00\x4c\ +\x03\xc1\x1b\xf2\x8b\xd1\x2f\x96\xa6\xd3\x52\xe4\x76\x46\x20\x57\ +\x18\xeb\x00\xe8\xea\xec\xb0\xb5\xc7\xe6\x85\x11\x38\x3c\xd0\x1f\ +\xbf\xd1\x49\x6d\x51\xc6\x04\x1b\x80\x8c\x43\xae\x74\xe1\x29\x62\ +\x39\x64\x07\x44\xc6\x47\xd5\x1a\x0e\x59\x32\x67\xf8\x2c\xd2\xa0\ +\x27\x14\xc5\xce\xde\x80\xa5\xec\xcb\xe2\x4e\x59\x53\x7d\xb3\x9e\ +\x35\x8c\x24\xba\x1a\xb3\xa8\x15\x80\x7d\xf1\x28\x87\xb4\xed\xeb\ +\x61\x90\x1a\x0a\x20\x35\x12\x42\x46\x66\x86\x78\x94\x64\xc9\x33\ +\x4e\x04\xe9\x9f\xb5\xb5\xb6\xce\x1b\x00\x34\x5a\x4f\x0c\xf6\xf7\ +\xc4\xe3\x00\x4e\x00\x10\x0a\x6b\x22\x48\xcc\xcf\x44\x4d\x45\x29\ +\x46\x8e\x9e\x24\x29\x30\x8c\xf1\xac\x82\xa4\x21\xe1\x67\x7a\x02\ +\x78\xa6\x6f\x62\x86\x94\xb1\x31\x55\x0c\x4b\x1d\xa1\x64\x0f\x12\ +\x38\x30\x77\xc6\x54\xaf\xa2\x32\x57\xdd\x5d\x62\x3a\xf7\xcf\xe7\ +\xf4\xf7\x56\xd7\x55\x99\x8e\x0a\x66\x07\x06\xc4\x29\x9f\xb6\x9a\ +\x48\xba\x27\x09\x00\x84\x6a\x20\x15\x3b\x11\xc0\xe0\xe0\x80\xdd\ +\x25\x2d\xf2\x1c\x01\xc0\xe4\x09\x04\xe9\x06\x03\x6c\x07\xd0\x3f\ +\x9e\xf8\xc0\x06\x8d\x1d\xf9\xc7\x27\xc4\x6a\x9c\x2b\x96\x54\x8b\ +\xef\xe5\x8d\x76\x26\xcf\x07\x58\x3d\x04\x53\xd2\x48\x36\x27\x8f\ +\x5c\x76\x24\x27\x5e\x6f\x47\xc6\xdf\x72\x25\x21\xdb\x9c\x85\x83\ +\x0d\xe3\x20\xd5\x72\xfd\x6a\x2d\x04\x4b\x41\x15\x00\x69\xb6\x7d\ +\xc5\xff\x38\xb3\xca\xe0\x68\x38\x79\xc2\x8e\x0f\xbc\x14\x4f\x68\ +\x2e\x00\xc0\xa5\x2d\x6f\x58\x4f\xb6\x37\x37\x6a\x09\x8c\xb0\x98\ +\xce\x64\x97\xdc\xe0\xa9\x60\xfc\xd0\x6b\x97\xab\x25\x05\xf9\x23\ +\x9d\xb6\x62\xdf\x39\x41\x34\x9b\xf3\xb2\xf9\x75\x26\x06\xcb\x06\ +\xb0\xb8\x0c\xbf\x61\x04\x90\xd3\x6f\x9d\x01\xe5\x0f\x77\x8a\x88\ +\x68\x5e\xb6\x4f\xbc\xb2\x2b\x68\xd7\x57\xea\xfc\x41\x15\x08\xbc\ +\x45\x8d\x03\x00\xe6\xcc\x44\xda\x67\x3d\xd1\xd5\xde\x1c\xdf\x5e\ +\x85\x45\xbd\x2d\x00\xc6\xc6\x45\x1a\xb4\xac\xb8\x10\x45\xf9\xb9\ +\xc8\x1e\xed\x85\x9b\xdd\x41\xc9\x1a\x19\x4c\x32\xfa\x9d\xa4\x80\ +\x4b\x76\x96\x02\x09\xa3\x5d\x9e\x4e\x35\x9b\x80\x20\x27\x8e\xf6\ +\xd3\x1d\xfd\x4e\xc4\xf3\x01\xc6\x07\x90\x1e\x1a\x17\x93\x66\xb8\ +\x36\x22\x2d\x2d\x45\x9b\x3c\x93\xd8\x57\x2a\x30\xd4\xbc\xca\x11\ +\x7b\x00\xec\x9b\x4b\x00\x24\xcc\x54\x68\x3f\x75\x32\x3e\xd7\x7d\ +\x3c\x10\x14\xaf\x76\xd4\x3f\x3c\x22\x2c\xdf\xb7\x5d\xba\x16\xbc\ +\x34\x73\x69\x6f\x83\xa5\x08\x04\x86\xd8\x00\x66\x27\x11\xec\xea\ +\x08\x5c\x86\x91\xeb\xd6\xce\x71\x45\xb1\xdb\xc0\x54\x3e\x76\x6b\ +\x60\x70\x5b\x01\x63\xa3\x62\x92\x32\xdd\xc9\xa5\x9d\x7e\xa6\x92\ +\xde\x93\xa2\xaf\x4a\x0b\x0b\x84\x24\xe4\x35\x89\x9d\xfa\x49\x14\ +\xd6\x6a\x8b\x5d\xef\xdb\xb7\xc7\x8e\x07\x7f\x9c\x4b\x00\x24\x2c\ +\x06\xd5\xd3\xd5\x8e\xc9\x89\x09\x01\x02\xb5\xcc\x29\x66\x4b\x3d\ +\xbd\x83\x02\x00\x57\x6c\xba\x44\x7c\xaf\xac\xeb\xb8\xbd\x2b\x28\ +\x9d\xc1\xa8\x73\x59\x44\xbd\xdb\xc0\x7c\xd7\x0c\xfa\x3d\x41\x52\ +\xd8\xfd\xa6\x3c\xc3\x7d\x58\xc0\x6b\x90\x6a\x32\x3d\x7b\x49\x4f\ +\xa3\xc8\x8a\x96\x14\x14\xc4\xf5\xbf\x5d\x1f\xf1\xa3\x7b\xb4\xda\ +\xca\x46\xd2\xff\x43\x83\x83\x76\xc1\xb8\xdd\x73\x09\x00\xb6\x4a\ +\x5a\xcc\x89\x8b\x18\x9a\x4e\x1c\x89\x2f\xde\xcc\x75\xed\x36\x93\ +\x82\xc5\xbc\x38\x2e\x79\xe6\x25\xd4\xd6\xaf\xac\x47\xc6\xc4\x28\ +\x0a\xfa\x5b\x9c\x63\x02\x92\x74\x7a\x52\xc0\x65\x61\x7a\xc2\x75\ +\xb2\x99\x64\x3b\x15\x60\x90\x08\x67\xa2\xeb\xa5\xc4\x60\x56\x59\ +\xe7\x51\xa4\x44\xa6\x50\x5e\x5c\x24\xb6\xbf\x61\x11\xaf\xcf\x9d\ +\xb4\x92\x58\x3a\x57\x53\x05\x3b\x77\xfe\xc1\x49\x02\x87\xe6\x12\ +\x00\xdc\x12\x0a\xd5\x4f\xbe\x71\xd0\x60\xf0\x05\x1c\xbd\x81\xd6\ +\xce\x5e\x31\x02\x6e\xdc\xf1\x76\xf1\xbd\xda\xa6\x7d\xe6\x5c\x80\ +\x0d\x10\xf4\x90\xa9\x20\x97\xe1\x98\xeb\x0c\xb8\xda\x88\xcf\xb9\ +\x25\xf5\x58\xbf\x46\x9c\xd3\x3e\xe3\xf3\xf1\x63\xeb\xe7\xb2\xf6\ +\x5d\x2b\xc9\xd3\xbf\xa9\xff\xae\xcd\xdf\x97\x74\x55\x23\xd9\x25\ +\xb3\xd4\xd1\x5f\x7d\xea\x80\x78\x5b\x5b\x59\x2e\x9e\x85\xa3\x80\ +\x4e\xfd\xc3\x6b\x09\xc5\x34\xfd\xff\xc2\xf3\xcf\x26\xed\xfb\xb9\ +\x4c\x07\xf3\x76\x6f\xa6\xbd\x7f\x5a\x1a\x8f\x61\x32\x38\x01\x4f\ +\xba\x57\x18\x7c\x85\x79\xd9\xb6\x1b\x3c\xb5\x75\xf4\x60\x59\x6d\ +\xa5\x58\x38\x6a\x45\x5d\x0d\x8e\x37\xb5\xa0\xb0\xe7\x14\xfa\xcb\ +\x97\x3a\x26\x85\x52\x89\x51\x29\x2e\x4b\xf2\xc8\x65\x53\x3b\x20\ +\x3b\xc5\x04\x24\xfb\x60\x90\xdd\x94\x2f\xa3\xdf\x1f\xb3\xd4\xfa\ +\xf3\x6b\xd4\x10\x0b\xe0\xb5\x01\x78\x2a\x97\x62\x89\x5a\x2a\xfa\ +\xf0\x54\x50\xde\x76\x04\x69\x53\x41\x94\x97\x14\x21\xd3\x9b\x1e\ +\xdf\x04\x4b\xb1\x99\x3d\xc5\x61\xe1\x74\xd6\xff\xf4\xaf\xb9\xb9\ +\x59\xa8\x00\x87\xbe\xc7\x5c\x4b\x80\x17\x39\x16\x6d\xf2\x0f\x23\ +\x11\x1c\x3f\xbc\x3f\xbe\x71\xc3\x28\xdb\x02\xb0\x59\x09\x83\x3e\ +\x6b\x6a\xed\x14\x31\x81\x5b\xde\x73\xad\xf8\xee\xd2\xa3\x7f\x12\ +\x23\x25\xce\x30\x19\xa6\x39\x01\x5e\x02\x80\x37\xc5\x42\x6e\x79\ +\xfa\xbc\xdb\x42\xe2\x1a\x97\xf6\x99\x2b\xf9\x75\x6e\xed\x9a\x64\ +\xbf\x6d\x3d\x97\x6a\x3e\x9f\x90\xc2\xd6\xee\x3f\x35\x14\x44\xcd\ +\xc9\x7d\x42\x52\xac\xac\xab\xd5\x76\x12\x49\x75\xdc\x8a\x3c\x3b\ +\x2b\x53\x75\xff\xa8\x0f\x1f\xff\xcf\x47\xec\xfa\x9d\x5d\x82\xf8\ +\xa2\x91\x73\x39\x3d\x9c\xef\xb7\x8a\xc8\xb4\xd2\x81\x7f\x64\x08\ +\xeb\x36\x6d\xd7\x52\xc0\x51\xb1\xf1\x93\x9d\x9b\xc3\x8b\x43\xd5\ +\x54\x94\xa0\x38\x3f\x4f\xac\x9d\xd3\xd5\xda\x06\x29\x16\xc5\x70\ +\x49\xb5\xad\xee\xce\xe4\x39\x82\xa9\xbc\x76\x8e\x2a\x09\x52\xe8\ +\xbc\xfa\x4a\x24\x6b\xef\xe3\x9f\xc9\x62\x1e\x40\xfc\xbc\xfe\xea\ +\x92\xb4\xf3\xb3\x20\xc9\x72\x2c\x59\xce\x1b\x3e\xe7\x29\xe2\x13\ +\x51\xc3\x0c\x12\x43\x60\x6f\xe5\xbe\xe7\xe0\x1b\x1d\xc0\x8a\x25\ +\x35\x28\x2e\xc8\x17\x40\xd0\x03\x3c\x56\x12\x46\x71\x71\x81\xb8\ +\x66\x2a\x14\xc2\x37\xbe\xfa\x15\x84\x42\x09\xc9\x57\xde\x5a\xe6\ +\xb5\xf9\x00\x00\x6e\xbc\x98\xdd\xa7\x4c\x51\xc1\xc0\x38\x4a\xab\ +\x6a\x91\x9d\x5b\x20\x7c\x7e\xde\x89\x8b\x1f\x38\x21\x3d\xcc\xeb\ +\xfe\x87\xa6\x50\x59\x5a\x84\xe5\x4b\xaa\xf0\xe2\x6b\xaf\xc3\xd3\ +\xd7\x81\xe1\xe2\x4a\x84\x32\xb3\x13\x0c\x3b\x0f\xef\x1b\x98\xe6\ +\x12\x53\xbf\x52\xdd\xea\xcc\x1f\x33\xd1\x39\xd9\x70\x6c\x3a\xa7\ +\xbd\x17\x33\x86\x24\xf5\x55\x27\x49\x3f\x86\x7a\x2c\x69\xaf\xfc\ +\x3e\x7e\x0d\xa6\xaf\x33\xbe\x6a\x34\x1e\xa1\x67\xd1\xc5\xb9\x21\ +\xa4\x5c\xd4\x7e\x02\xb5\xc7\xf6\x8a\xc9\xb2\x1b\xd7\xac\xd2\x32\ +\x7f\x2e\xc7\x80\x34\x47\x07\xf5\xe5\xf3\x9f\xfa\xdd\xe3\xa4\xff\ +\x9f\xb1\xb3\xfe\xef\xe0\x6e\x9e\x2f\x00\xe8\x26\x7a\x17\x2c\x73\ +\x05\xc6\x46\x86\xb1\x6a\xc3\x66\x21\x03\xb9\xae\x8d\xa5\x80\x5d\ +\xe3\x2d\x5f\x78\xad\xdc\x82\xdc\x1c\x94\x95\x14\x62\xd7\xfe\xc3\ +\xc8\xeb\x6d\x43\x6f\xcd\x72\x44\x79\xb7\x2e\x43\xa0\x27\x4a\x9d\ +\x57\xe9\x75\x1b\x98\x2c\x5b\x98\x6a\x78\x6f\x07\x04\x23\x18\x64\ +\x2b\xc1\xe6\x9c\x81\xf1\x3a\x20\x24\x18\x98\x0f\x71\x8e\x25\x41\ +\xdb\x64\x44\x98\x05\xd3\x00\x50\xe0\xf5\x0f\x63\xdd\x2b\x8f\xc3\ +\x45\x40\xbf\x62\xe3\x25\x42\xaf\x0b\xa3\xd1\x21\xbd\xcd\xe0\x28\ +\xd7\x46\x3f\x0f\x9c\xbf\xff\xca\x17\x31\x36\xe6\xb7\xd3\xfd\xf7\ +\x9b\x32\x86\xf3\x20\xf9\xc9\xc9\x6d\xd3\x8e\x60\x63\xa3\xc3\xa8\ +\xa8\xae\x83\x2f\x27\x4f\x64\x00\xc5\x02\x88\x29\xf6\xf6\x6a\xff\ +\xe0\x08\x6a\x2a\xcb\x84\x24\xe0\x08\x62\x4b\xe3\x29\xf8\x06\x7a\ +\xd0\x53\xb7\xda\xe4\x77\x47\x89\xb2\x48\xdf\xe6\xb1\x1a\xd0\x45\ +\xbc\xae\x06\xe2\xa2\x5e\xb2\xa8\x00\x69\x5a\x15\xd8\x1e\xb3\x28\ +\x87\x41\xcc\x43\x23\xa3\xa8\x87\x45\xf4\xc3\xa4\x16\x06\xc3\x51\ +\xf4\x4d\xc5\x4c\x99\x41\xf7\x64\x10\x1b\x5e\x78\x04\x9e\x60\x00\ +\x97\xac\x5a\x2e\x5c\x3f\xeb\xba\x15\xd6\xc6\x7b\x27\xf0\x5c\x41\ +\xbe\xea\xb9\xa7\x9e\xc0\x53\x4f\x3e\x61\x77\xd9\x1d\xda\xa0\x9b\ +\x57\x00\xe0\x98\xf4\x6d\x50\x57\xaf\x32\xd9\x02\x2b\x37\xa8\xe6\ +\x01\xaf\x08\xa6\x8b\xb6\x04\x83\x90\x0c\x47\xce\x11\xd4\x54\x96\ +\x62\xed\xb2\x3a\xb1\x37\x80\xbf\xbd\x0d\x19\xa3\x83\xe8\xaf\x59\ +\x66\x02\x81\x9f\xbe\x50\xeb\x4d\x81\x37\x2e\xd2\x8d\x52\x40\xb6\ +\x8c\x70\xd9\xf2\x6a\x50\x03\xc9\x46\x3a\x19\xa6\xd3\xaa\x00\x89\ +\xc7\xf2\xf4\x7b\x66\xfb\xc1\xf1\xf0\x74\x35\x0f\xbd\xb8\xc2\x53\ +\x58\xff\x87\x47\xe1\x1b\xee\x43\x6d\x45\x19\xd6\xad\x58\x16\xaf\ +\x88\x52\xb4\x0d\xeb\xac\xc4\xb5\x01\xa5\x45\x6a\x70\x28\x1a\x8d\ +\xe0\x6b\x5f\xb9\xc7\x6e\xf4\xb3\xd1\xfd\xad\x84\x9a\x81\x79\x00\ +\x00\x11\xfc\x83\x65\xd1\x28\x96\x02\x79\x45\xa5\xc8\x2b\x2c\x8e\ +\x17\x3b\xf0\xca\xd8\x76\x3d\x30\x16\x98\x88\x6f\x24\xb1\x79\xfd\ +\x6a\xec\x39\xf4\x26\x62\x5d\x1d\xc8\x18\x19\x40\xff\x92\x65\xf1\ +\x59\x42\x31\xa2\x51\xea\xec\xba\x74\x37\xd2\xe2\x23\x5e\x4a\x94\ +\x00\x09\xa3\x5d\xb6\x18\x6e\xfa\x79\x98\x8d\xba\xf8\xe8\x47\xe2\ +\xb1\x3e\xfa\xa1\x9e\xe7\x7f\xaf\x11\xf3\xc5\x34\x75\x8d\xff\x82\ +\xf9\xcf\x3c\x8c\x9c\xfe\x4e\x94\x90\xc1\xb7\x9d\x44\xbf\x28\xfb\ +\x26\x90\x8b\x05\x33\x1c\x4c\x7f\x2e\x92\xe1\xb8\x00\xb7\x47\x7e\ +\xf5\x20\x5e\x7c\xe1\x39\xa7\xd1\xdf\x3a\x1f\x01\x00\x2d\x3b\x98\ +\x20\x05\x7a\x3b\x5b\xb1\xfa\xd2\xad\x02\xe1\x5c\x29\x94\x9e\x9e\ +\x26\x42\xa1\x76\x8d\x17\x8c\xe0\x65\xd3\x0b\xf2\x72\xb0\x65\xc3\ +\x6a\xbc\xfe\xc6\x09\x0d\x04\x24\x09\x96\x2c\x8f\x27\x6f\xd8\xfa\ +\x19\x24\x40\x2d\xf1\x90\xbf\x6c\xb2\xec\x2d\xd6\xbf\x6c\xb1\xfa\ +\xe3\x8c\x96\xa7\x45\xbc\x64\x05\x01\xcc\x40\x80\xfe\x6a\xfe\x8c\ +\xf5\xfd\x4b\x63\x53\x18\x30\xec\x20\xe2\xa2\xe7\x5b\xff\xd4\xaf\ +\x91\xd3\xd7\x29\xf6\x3f\xbc\xfa\x6d\x1b\xc5\x73\xf3\xaa\x5f\x0c\ +\x00\xa7\xc6\x51\xbf\x02\xad\x4c\x6e\xa0\xbf\x0f\xdf\xfc\xea\x97\ +\x11\x0e\x4f\xd9\x8d\xfe\xbf\xb3\xfb\xfe\x7c\x01\x00\x63\xf9\x94\ +\x06\x82\x78\x9b\x0a\xf1\x46\x4f\x61\x54\xd5\x2d\xd7\xaa\x85\xc2\ +\x22\x10\xa2\xaf\xd3\x60\xa5\xf6\xae\x3e\xa1\x0b\x79\x44\xc4\x41\ +\xd0\xd9\x8e\xdc\xae\x36\x0c\xd6\xd4\x21\xca\x2b\x67\xf1\xe4\x4a\ +\xfa\x81\x56\xea\xfc\xd2\x54\x37\xf2\xdd\x46\x66\xc3\x2c\x15\xec\ +\x5c\x3b\xc9\xce\xdd\x33\xe8\x7d\x23\x08\x60\x91\x02\x6c\xb3\x90\ +\xc5\xff\x0c\x31\x7f\x24\xa2\xc4\x0b\x49\xd2\xc9\xe8\xbd\xe4\xb1\ +\x07\xe1\x1b\xec\x13\x23\xff\xda\xb7\x6f\x11\xc5\x1c\x53\xf4\xbc\ +\x5c\x0a\xe7\xe4\xf3\x33\x40\x38\x38\xa4\x1b\x86\xff\xf8\x0f\x5f\ +\x47\x53\xe3\x49\x6b\xdf\x32\x7a\xfe\x0c\x36\x4b\xc5\xcf\x17\x00\ +\x70\x75\xc7\x55\xda\xe8\xe7\x65\x4b\x32\xcd\x52\xa0\x1d\x15\xb5\ +\x4b\x91\x95\x9d\x2b\xc4\x20\xaf\x0e\x9e\xee\xb1\xdf\xd7\x87\x7d\ +\xe1\x8e\x9e\x3e\xe4\x64\x65\x89\xcd\x19\xaf\xdc\x72\x29\x1a\x5b\ +\xdb\xe1\x6f\x6d\x45\x51\xc3\x31\xf8\x4b\xca\x11\xca\x56\xd7\x14\ +\xe0\x31\x72\x82\x0c\xb0\x20\x75\x5e\x15\xc7\x08\xac\xc6\xa0\x0e\ +\x06\x13\xb3\x65\x33\x10\x12\x98\xee\xa0\x06\xa0\x2e\x3f\xfb\xca\ +\x44\x04\xaf\x04\xc2\xe2\x58\x17\xfb\x05\x8d\x27\xb0\xfe\xf1\x5f\ +\xc1\x43\xee\x6f\x5d\x75\x05\xae\xb9\x7c\x33\x5c\x04\x4a\xae\x8c\ +\xe2\x95\xd0\x9c\x1a\xf3\x9c\x55\x1e\x2f\xa6\xcd\x6f\x5e\x78\xfe\ +\x69\x3c\xf4\xc0\xcf\xec\x2e\xfd\x37\xa2\x9f\xe0\x34\xab\xdc\xce\ +\x47\xe3\xdd\xc1\x78\xab\xd3\x8d\x33\x5d\xc8\xcc\xbf\xf5\xd3\x7f\ +\x8d\x34\x8f\x1a\x06\xcd\xcf\xf5\x89\xbd\x75\x9c\x1a\x8f\x88\xed\ +\x9b\xd7\x0b\xc3\x90\xb7\x8a\xbb\xff\xd1\xa7\xf0\xf4\x4b\xbb\x10\ +\xa3\xf3\xed\x97\x6e\x41\xf3\x15\x3b\x10\xe3\x82\x09\xcd\x45\xe4\ +\x0e\x5f\x4f\x76\xc1\x26\x52\x0b\xc5\x7a\x54\x2e\x59\x38\x38\x11\ +\x79\x8e\x25\x60\xbd\x34\xd2\xf7\x07\xc3\x38\x10\x54\x6b\x1a\xd5\ +\x30\xb0\x02\x37\x79\x2c\x4b\x89\x69\x65\x47\x0f\x8b\x67\xda\xb2\ +\x7e\x8d\x28\x74\xe1\x6c\xde\x58\x20\x88\xb1\xf1\x89\xa4\x7d\xc2\ +\x7d\xc0\x9b\x68\xf0\x77\xfb\x7b\x7b\xf0\xd9\x4f\xdd\x81\x40\x60\ +\xdc\x7a\x19\x47\x5a\xb9\x7a\x66\xd4\xe9\x77\xe6\x42\x02\xf0\xea\ +\xcf\xbf\x23\xfa\x3c\x07\xae\x66\xf3\x85\x65\x2b\xd7\xe0\xf2\xed\ +\x3b\x10\x08\x86\xe2\xaa\x20\x8d\xc4\xb7\xcb\x61\xef\x20\xb6\x95\ +\x5b\x3a\x7b\xe2\x91\xb1\x0d\x2b\xeb\x85\xab\x78\xe4\x78\x23\xbc\ +\xad\xcd\x28\x3e\x7a\x04\x21\x5e\x77\xb7\xa8\x48\xd8\x05\x5c\x58\ +\xda\x4d\xcc\xda\x1f\x8e\xe1\x04\x31\x87\xed\x04\x0f\xef\xf4\xe9\ +\x52\x2d\xfb\x44\x3b\xc0\x40\x16\xfd\xce\x77\xd4\x4d\x7c\x3e\x40\ +\xd2\xe5\x69\x62\xfa\x4b\xe4\xe3\x77\x45\x62\xd3\xab\xcd\x11\x08\ +\x4a\x0f\xbd\x8e\x75\xbf\x7d\x08\x39\xdd\x9d\x22\x71\x73\xe3\x8e\ +\x6d\x62\xf4\x8b\x25\x60\x46\xc7\x84\x3b\x9b\xac\xf9\xe8\x3b\xba\ +\xde\x9f\x22\x15\xf1\xb7\xf7\x7c\x01\xbd\x3d\xdd\x76\x97\x7e\x14\ +\x86\x85\xa1\xe7\x83\x04\x60\x65\xfe\x3c\x6c\x16\x89\x70\x6a\x6b\ +\x36\x6c\xc4\xc7\xff\xfc\x2e\xd2\xed\x3e\xb1\x32\x48\xab\xc6\x58\ +\x9e\xf6\xc4\x01\x20\xa7\xf8\x80\xde\x78\xb3\x89\x2b\xb6\x6c\x10\ +\xa2\x92\x13\x4c\x0f\x3c\xfa\x34\x5e\xd9\xab\x56\xc8\x8c\x15\x97\ +\xa0\xf9\xca\x1d\x18\x58\xbd\xca\xb6\xba\x87\x17\x8b\x2a\x21\x89\ +\x50\xc4\x3b\x72\xd0\x71\x96\xc6\x7c\x63\xaf\xf1\x22\xcf\x63\x5c\ +\xa8\x42\xd4\x47\x8c\xee\x21\x8a\x88\x51\xae\x8d\x76\x6d\xc4\x4b\ +\x64\xcc\x15\x1f\x38\x88\x9a\x57\x5e\x82\x77\x78\x48\x8c\xdc\x4b\ +\x57\x2f\xc7\xc6\xb5\xab\x44\x75\x0f\x1b\x7b\x6c\xc8\xf2\xaa\x1e\ +\xc9\x1a\x97\xcc\xb3\xcb\x27\x16\xcc\xa0\xfb\xf8\xfe\xb7\xbf\x85\ +\x9d\xcf\x3d\x6d\x77\xa9\xe3\x3e\x41\x73\x05\x80\xe5\x9a\x35\x5a\ +\x72\x26\xcc\xe7\x68\x20\xc7\x02\x0e\x1f\x6f\x42\x6b\x47\x8f\x96\ +\xf9\x72\x09\x31\x38\xd3\x56\xf1\x5c\x1d\x23\x36\x6b\x2e\x2d\x12\ +\x2e\xe5\xc9\x96\x36\x3c\xf4\xc4\x73\x22\x8b\xc8\x2d\x50\x50\x80\ +\xae\x8d\x1b\xd1\xbd\xf1\x32\x44\x38\x99\x62\x2d\x0c\xb1\xd6\xf1\ +\x49\x86\xc5\x03\x63\xd3\x4c\x86\x0d\xe3\x3d\x03\x83\x28\xd9\xbb\ +\x1f\x65\xfb\xf7\xc1\xa3\xcd\xce\xe1\xd1\xbe\xed\xb2\xf5\x22\x74\ +\xcb\x76\xcb\x88\x7f\x1c\x7d\x83\x23\x8e\x6b\x23\xea\x8d\x6b\x00\ +\x58\xa2\xb1\x27\xc4\x00\x7a\xf8\x97\xf7\xe3\x17\x3f\xb7\x55\xef\ +\xfc\x60\x1b\x92\x89\xfe\xf3\x0d\x80\xa4\xcc\x2f\x24\xe3\xac\xac\ +\xb2\x5a\x58\xbe\x7d\x24\x16\xdb\x5a\x9a\x6c\x99\xcf\x31\x71\x1e\ +\x01\xcf\xbd\xb2\x47\xec\xad\x27\x40\x40\xcc\xcf\xcd\xc9\xb2\x5d\ +\x2b\xcf\xda\x96\x54\x95\x61\xd3\xfa\x95\x6a\x29\x15\xe9\xda\xa3\ +\x0d\xcd\x78\x72\xe7\xab\x38\x74\xac\x41\x0d\xb6\x50\xc7\x8e\xd6\ +\x54\x63\x70\xc5\x72\x0c\xad\x5a\x81\x40\x45\x29\x94\x14\xb7\xb9\ +\xf0\xd3\xb0\x50\x83\x9e\xce\x35\x32\x5e\x26\xe3\x2d\xa3\xad\x13\ +\xf9\x47\x8f\x23\xff\xd8\x09\x64\xb7\xb7\xc7\x43\xb5\x5c\xcd\xbc\ +\x99\x74\x7d\x41\x5e\xae\xd0\xf5\x93\x93\x21\xb1\x75\x7d\x60\x62\ +\x72\xc6\x7b\xe7\xb5\x7f\x8b\x0b\xf3\x35\xe6\x03\xcf\x3e\xf5\x04\ +\xfe\xed\x9f\xbf\x6b\x77\x29\xff\x18\x2f\x02\xb9\x7f\x36\x8c\x91\ +\xe6\x92\xf9\xde\x8c\x2c\x5c\x7f\xf3\x47\xb0\x72\xcd\x7a\xb1\xc4\ +\x39\x33\x98\xfd\xda\x9e\x8e\x56\x78\xb3\xf3\xc5\x16\x71\x46\xe6\ +\xb3\x0b\xe8\xd5\x62\x01\xbf\x79\x72\x27\xda\xbb\xd5\x8d\x91\xf8\ +\x7d\xb6\x2f\x53\xb5\x88\x67\x68\x7c\x2d\xef\xc5\xb7\x66\xf9\x92\ +\xf8\x5a\x04\x7d\x03\xc3\x78\x79\xef\x01\xec\x7a\xfd\x88\xc8\x2c\ +\xc6\xd3\xd3\x04\xaa\x40\x59\x09\x02\x25\xc5\x98\x2c\x2e\x44\x28\ +\xc7\x47\xc6\x63\x8a\x09\x00\xae\x89\x10\xd2\x46\xfd\x48\xef\xed\ +\x83\x97\xee\x27\xa3\xbb\x07\xb2\x61\x24\xb3\x4b\xba\x66\x59\x1d\ +\x56\xd7\xd7\x09\xf0\x2a\xda\x5e\x07\x5d\xbd\xfd\x42\xa5\xcd\xa6\ +\xf1\x73\x73\x6c\x40\x15\xfb\x12\x76\xbf\xfa\x32\xbe\x47\x2e\x1f\ +\xef\x1d\xec\x10\xf0\xb9\x6f\xb6\xcc\x91\xe6\x92\xf9\x1f\xfc\xf8\ +\x67\x51\x59\x55\x6d\x62\x7e\x86\xd7\x23\x2c\x7c\xce\x00\x06\xc8\ +\x18\xe2\xf7\x46\xe6\x73\xc4\x8b\x3f\x9b\xa0\x51\xf3\x9b\xdf\xbf\ +\x20\x7c\x7f\x61\xf9\x13\x63\xd9\xa0\x62\x31\x39\x9b\xc6\x12\x63\ +\xd9\x92\x4a\xac\x5c\x5a\x2d\x00\xa6\x17\x53\x32\x63\x78\xe3\x29\ +\x5e\x88\xba\xa5\xa3\x3b\xbe\x26\xd1\x6c\x1b\x6f\x05\x5f\x4e\x60\ +\xa9\xae\x28\x43\x5d\x55\x85\xc8\xcf\x8b\x30\x2e\xdb\x0a\x81\x09\ +\xf4\xf4\x0f\x62\x70\xd8\xef\x38\x99\x23\x31\xc6\x9f\x29\xa4\xa0\ +\xbe\x36\xc2\xce\xe7\x9e\xc2\xbf\xff\xf0\x7b\x4e\xea\x82\x53\xbd\ +\xf7\x9c\xce\xfd\x4a\xf3\x91\xf9\x5e\x7a\x65\x91\x27\x82\x21\x91\ +\x88\x38\x36\x32\x9f\xa7\x89\xb1\x9b\x34\x30\x32\x8a\x97\x77\x1f\ +\xa0\x4e\x1d\x8a\x8b\x59\x06\x80\x5e\x35\x33\xdb\x56\x5a\x94\x47\ +\xea\xa1\x5c\x6c\x49\x9b\xaa\x4d\xa7\x8a\x89\x02\x4b\x45\x80\x90\ +\x8d\x33\x5e\x91\x93\xfd\x72\xb1\x44\x8d\x56\x6d\xcb\xde\x06\x4f\ +\x57\xe7\x45\x99\x59\x9f\x73\xad\x7e\xaa\xb6\xcc\x9d\x5e\x9e\xc5\ +\xf5\x8b\xfd\x24\x61\x58\xca\xcc\x64\xdd\x9b\x5c\x59\x5e\xfd\x9c\ +\x54\x05\x3f\xb7\xa4\x95\xb4\x3d\xfe\xc8\xaf\xf0\xd0\xfd\x8e\x2e\ +\xfd\xac\x8c\xbe\xf3\x05\x80\xb3\x66\x3e\x4f\x79\xe2\xfd\x70\xd5\ +\xd2\x27\x45\x74\xb2\x91\xf9\xbc\x5c\xdc\xc0\xd0\xa8\xd8\x2c\xb2\ +\xb1\xb5\x23\xae\x47\xf5\x9c\x39\x83\x60\x26\xe3\xd0\xae\xb1\x7b\ +\xc5\x3b\x73\x15\xe6\xe7\xa8\x5e\x46\xaa\x3b\x3e\x5f\x41\x7d\x8d\ +\x4d\xbf\x17\xe7\x62\xf1\x63\xbe\x4f\x66\x32\xa7\xa9\x59\xbc\x0f\ +\x12\x40\x67\xa3\xdf\xad\x8d\x9f\x95\xcb\xe1\xb8\xbc\x4b\xcc\x12\ +\xa7\xbf\xf9\xd3\x7b\x7f\x80\x17\x13\xf3\xfb\xc6\x34\xef\x2d\x50\ +\x27\xdd\xcc\x39\x00\xce\x19\xf3\x59\xa7\xf3\x88\x74\x69\x3a\x97\ +\x2b\x84\xac\xcc\xef\xa5\x91\x35\x40\xa3\x93\x57\xca\x0a\x93\x4f\ +\xac\x07\x8b\x78\x04\xb1\x34\xf0\x70\xc0\xe7\x2c\xa6\x88\xf3\x88\ +\x56\xef\xd3\x23\xb6\xae\xe7\x7b\x93\xc4\xde\x7d\x8a\x08\xec\xf0\ +\x08\x67\x50\x72\x15\x33\xaf\xdf\xcb\xab\x79\x9e\x69\xe3\x00\x56\ +\x4e\x76\x16\xa9\xb2\xf4\xf8\xa8\x1f\x1e\x1c\xc0\x3f\x7d\xe7\x9b\ +\x68\x3a\x79\xfc\x9c\x33\xff\xad\x00\xc0\x39\x67\x3e\xaf\x1b\xc8\ +\x46\x13\xcf\x19\xe4\x42\x07\x16\xc1\x76\xcc\x7f\xfa\xe1\x9f\x93\ +\x07\xd1\x81\x77\xbe\xff\x76\x94\x55\x2d\x89\x77\x20\x1b\x7d\xfc\ +\x9b\x6e\xf7\xbc\x58\x0e\x29\x49\x52\xc7\x23\x42\xd8\x1c\xdf\xd0\ +\xf5\xfd\xeb\x7b\x77\x8b\x91\x3f\x3e\xe6\x7f\x4b\x98\x7f\xae\x01\ +\xf0\x96\x31\x9f\xc5\x2a\xcf\x16\xe2\x51\xe6\x17\x3e\x73\x22\xf3\ +\x9b\x8e\x1f\xd1\x54\x80\x8c\xf5\x5b\xb6\x63\xeb\x8e\xeb\x49\x7c\ +\x4f\xeb\x4f\xfe\x2d\xf1\x9b\x6e\xd7\xbc\x62\x3c\xe7\x35\x7c\xe4\ +\xed\xb0\x7a\xd3\xd7\xfb\x09\x8c\x8f\xe1\xd7\x0f\xfc\x04\xaf\xbe\ +\xf4\x42\xb2\xaf\x7e\x9b\xe8\xee\xb3\xfd\xfb\xd2\x42\x61\x3e\xbf\ +\xb2\x41\xc6\x2a\xa0\x95\xac\x73\x06\x80\x95\xf9\xd6\xfc\xc1\xb6\ +\x77\xbe\x17\xf5\xab\xd6\xc7\x41\x20\x49\xea\xaa\x19\x29\x29\x2e\ +\x2d\xad\x3c\x37\xa9\x10\x56\x4f\xcc\x78\x61\xa7\xb8\x5d\xf1\xfb\ +\x63\x7b\x62\xd7\xcb\x2f\xe0\xb7\xbf\xbc\x0f\xe3\xe3\x8e\xde\x07\ +\x67\xf7\x3e\x93\x2c\xc1\x73\xbe\x01\x70\xde\x98\xcf\x06\x15\x5b\ +\xe2\xec\x9a\x35\xb7\x75\xe1\xc9\x5f\xff\xd4\x96\xf9\xa6\x50\x70\ +\x75\x1d\xb6\x5e\xf5\x2e\x54\xd4\xd6\xc7\x41\xa0\xaf\x39\xc8\xe9\ +\x54\x97\xf0\xad\xcf\x4f\x75\x3c\x1b\x94\xec\xc9\xf0\xf3\x72\x49\ +\xbb\x11\x98\x87\xf6\xef\xc1\xef\x7e\xfb\x10\x3a\xda\x5a\x92\xfd\ +\x04\x2f\xae\xc1\xe5\x73\xaf\x9d\xab\x7b\x92\x16\x1a\xf3\x27\x26\ +\x27\x85\xe1\xd5\x78\xe2\x38\xee\xfd\xce\xd7\x66\x7d\xa3\x0c\x84\ +\xcd\x57\xbe\x13\xd5\x75\x2b\xe2\x20\xd0\x49\xd6\x17\xa1\x94\xa5\ +\x73\x2a\x18\x19\x5c\xec\xca\x8a\x8d\x1c\x53\xd4\x99\xbc\xc6\xbf\ +\xcd\x13\x3b\xde\x38\xb4\x1f\xbf\x7f\xf4\xd7\x33\x31\x9e\x1b\xef\ +\xfe\x7d\x27\x2c\x9b\x3f\xcf\x25\x00\xe6\x8c\xf9\x4c\x93\x93\x53\ +\xf8\xf1\xf7\xbe\x8e\xde\xae\xf6\xd3\xba\xe9\xfc\xa2\x12\xac\xdf\ +\xbc\x1d\x2b\xd6\x5d\x26\x66\x20\xc5\x81\xa0\x89\x66\x49\x5f\x8d\ +\x54\xd2\xd7\x24\x55\x4c\x7b\x40\x19\x0f\x75\x9d\xad\x8b\x75\x66\ +\x30\xab\x16\x96\x2c\x2c\xda\xf5\x98\xbd\x09\x70\xf4\x6f\xcc\x3f\ +\x82\x3d\x7f\x7a\x09\xaf\xee\x7c\x0e\x43\x83\xfd\x33\xdd\xf2\x88\ +\x96\x39\xbd\xef\xad\x90\x4a\xd2\x42\x65\x3e\x97\x88\x3d\x49\xfa\ +\xff\xd8\xc1\xbd\xd6\x5b\xe8\x99\x4d\xc2\xc9\x45\x23\xb3\x66\xe9\ +\x4a\x2c\x5b\xb3\x01\x75\xcb\xd7\xc2\xe3\xf5\x26\x80\xc0\x28\xa2\ +\x8d\x12\x43\x4d\x08\x26\xfb\x7c\x7a\x01\x47\x9d\xc6\xfd\xa3\x38\ +\x7a\xe4\x75\x1c\xd8\xbb\x0b\x4d\x27\x8e\xce\x98\xf8\x31\x04\x77\ +\x98\xf9\xbd\x6f\x95\x5a\x72\x2f\x54\xe6\x4f\x85\x23\x4e\x6b\x1f\ +\x7e\x11\x6a\x21\x04\x6f\x96\xb7\xd4\xe9\x21\x78\x1a\x1a\xdb\x0f\ +\x4c\x3c\x39\xb3\xa4\xac\x12\x95\x4b\x96\xa1\xac\xb2\x16\x95\xb5\ +\x4b\x91\x91\x99\x69\x18\xf5\xd6\x8d\xa4\x0c\xbb\x8d\xd9\x7e\x0e\ +\xe1\xbf\x77\xb4\x37\xa3\xb5\xe9\x24\xf9\xf0\xc7\xd0\xdd\xd1\x76\ +\x3a\x7d\xbc\x4f\x63\xfc\xab\x6f\xb5\x5d\xe2\x5e\xb8\xcc\x57\xd0\ +\xdf\xd3\x69\x77\x8f\xcc\xfc\x27\xa1\xce\x80\xfd\x30\xd1\x97\x93\ +\x01\x41\x88\x74\x1a\x8d\xdd\x1d\xad\x82\xe2\xee\x99\x37\x03\xf9\ +\x85\x25\xc8\x2d\x28\x84\x8f\x3c\x0a\x2f\x01\xc2\xe3\xf1\xaa\x2b\ +\x75\xf0\xfe\x86\xf4\x9d\x89\x89\x71\x21\x09\x82\xf4\x3a\x11\x18\ +\x87\x7f\x64\x18\x83\xfd\xbd\x18\xe8\xeb\xc6\x64\x30\x78\x26\xfc\ +\xe0\x42\x85\xaf\x12\x3d\x76\xbe\x3c\x12\x69\xa1\x32\xbf\xed\xd4\ +\x09\x3c\xf6\xc0\x8f\xec\xee\xb3\xc4\x22\x32\xd9\xf1\xe7\x92\x73\ +\xde\xaa\x7e\xeb\x3c\x8d\x03\x3d\xad\x49\xac\x67\xce\xf7\x1f\x96\ +\x16\x22\xf3\x87\x06\x7a\xf1\x9f\xf7\xfd\x0b\x8d\xba\x04\x5f\x99\ +\x57\x1e\xd9\x9e\xe4\x39\xd6\x6b\x96\x34\x47\xcf\x0a\xe6\x98\xe9\ +\xec\xd2\x3d\x40\x74\x2f\x6c\xea\xf5\xe7\x13\x00\x16\x0a\xf3\xa1\ +\x8d\xf4\xd9\x88\x4f\x96\x0a\x57\x69\x3e\x35\xcf\x4d\xac\x39\x4f\ +\xfd\xcd\x01\xfd\xdf\x69\x2e\xdd\xab\xf3\x41\xf4\x48\x17\x10\xf3\ +\xf9\x3e\x77\x9c\x85\x57\xb3\x4d\x53\x11\x5c\xa5\xbc\x06\x67\xbf\ +\x78\xc6\xb8\xc6\xf0\xdd\x1a\xf1\xfd\x75\xce\x37\xdd\x23\x5d\x20\ +\xcc\x6f\xd1\x98\x77\xae\xdc\x25\x97\x66\x38\xd6\x68\x54\xa2\x91\ +\xc7\x60\x67\x44\x30\xbd\xc0\xc5\xb8\x76\xdc\xa1\xdd\x0b\x53\x13\ +\x16\x40\x93\x2e\x00\xe6\xf7\x68\xe2\xfc\x04\x16\xdb\x39\x01\xc0\ +\x22\xf3\x2f\x62\x00\x2c\x32\xff\x22\x06\x40\xb1\x16\x88\x58\x64\ +\xfe\x45\xd4\x64\x83\xd1\xf3\xe8\x22\xf3\x2f\x5e\x00\x7c\xc6\x2e\ +\x4a\xb6\xc8\xfc\x8b\x47\x05\x34\x5b\x83\x21\x8b\xcc\xbf\x78\x24\ +\xc0\x16\xbb\x48\xd8\x4d\xb7\xde\xb9\xc8\xfc\x8b\x04\x00\x09\xa2\ +\x9f\x57\xe4\x58\xba\x6c\xc5\x22\xf3\x2f\x12\x00\xe4\x58\x4f\xd6\ +\xd6\x2d\x5b\x64\xfe\x45\x04\x80\x84\x3d\xda\xb8\x86\x6d\x91\xf9\ +\x17\x0f\x00\x46\xac\x27\x79\xa5\xce\x45\xe6\x5f\x3c\x00\x48\xd8\ +\x50\xe6\xd0\xeb\x7b\x10\xe3\xbd\xe9\x16\x99\x7f\x51\x00\x80\x8b\ +\x28\x4c\xab\x0b\xf1\x36\x6e\x3f\xfc\xee\x3f\x88\x75\x78\x16\x99\ +\x7f\x61\x37\x8e\x00\xf2\xa2\x34\x45\x56\x6f\xa0\xbb\xab\x13\xed\ +\x6d\x2d\xb8\xfe\x86\x1b\x91\x4e\x92\x60\x91\xf9\x17\x2e\x00\xb8\ +\x71\x15\xea\x27\x38\xfe\x63\xfc\xb0\xa5\xf9\x14\x9a\x9b\x9b\x70\ +\xd3\x7b\x6e\x12\x33\x5a\x16\x99\x7f\xe1\x02\x80\x4b\x58\x0f\x43\ +\xad\x95\x33\xcd\x93\x6a\x6a\x6c\x44\x63\x63\x03\x6e\xba\xe9\x26\ +\x31\x3d\x7b\x91\xf9\x17\x26\x00\x04\xaf\x89\x8e\x42\x5d\x56\xd4\ +\x04\x82\x86\x93\x27\x71\xf4\xd8\x51\x6c\xbf\xea\x6a\x31\x4d\x7b\ +\x91\xf9\x17\x26\x00\xb8\x1d\x73\x02\x41\x63\x43\x03\x4e\x1c\x3b\ +\x8e\xcd\x97\x6f\x17\x8c\x5e\x64\xfe\x85\x09\x80\xa4\x20\x60\x7b\ +\xa0\xb1\xe1\x24\x36\x5c\xb6\x55\x6c\xd7\xb2\xc8\xfc\x0b\x13\x00\ +\x49\x41\xd0\xde\xd6\x4a\xc6\x61\x13\x56\xad\xbf\x0c\x93\x64\x10\ +\x2e\x32\xff\xc2\x04\x40\x52\x10\x74\x77\xb6\xe3\x54\xc3\x09\xd4\ +\x2c\x5d\x81\x68\x4c\x32\x31\xbf\xbb\xa3\x05\x4f\x3c\xf8\xef\x8b\ +\xcc\x5f\x20\x6d\x36\x13\x43\x6e\x86\x3a\x4b\x35\xa1\x4e\x9e\x17\ +\x64\x5a\xba\x72\x1d\x7c\x39\xf9\x04\x84\x28\xba\xda\x4e\xa1\xa3\ +\xb9\xc1\xe9\x77\x16\x99\xbf\x80\xdb\xcd\x5a\xc0\x48\x39\x43\xe2\ +\xa5\xac\x97\x2f\x76\xe3\xc5\x09\x82\xf6\x45\xe6\x5f\x38\xed\x3a\ +\xa2\xfe\xd3\x60\xfe\x2e\xa8\xd5\xc6\x8b\xed\x02\x6a\xf9\x44\xbc\ +\x4c\xf5\x58\x12\xc6\x73\x8d\xe1\xa7\x31\x7f\xf6\x24\x5a\x6c\x67\ +\x61\x04\x3a\x35\xde\xa5\x90\x27\x54\xf2\xba\xf4\x7a\x51\x09\xd7\ +\x16\xf0\x44\xc8\xd7\x16\xbb\x76\x61\xb4\xff\x02\x38\x04\x9c\x57\ +\x51\x7e\x39\x70\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\ +\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\x32\x2d\ +\x31\x30\x54\x30\x32\x3a\x30\x38\x3a\x34\x37\x2d\x30\x36\x3a\x30\ +\x30\x48\x3f\xeb\x77\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\ +\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x31\x30\x2d\x30\x31\ +\x2d\x31\x37\x54\x31\x30\x3a\x34\x33\x3a\x32\x34\x2d\x30\x36\x3a\ +\x30\x30\x25\x20\xe2\x45\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x0a\x6c\ +\xff\ +\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ +\x01\x00\x00\xff\xdb\x00\x84\x00\x09\x06\x07\x14\x10\x12\x10\x11\ +\x13\x14\x15\x12\x14\x15\x16\x1e\x17\x17\x18\x18\x16\x17\x1b\x19\ +\x16\x1d\x1f\x26\x17\x1e\x20\x1f\x17\x1b\x1f\x1c\x28\x22\x1c\x1a\ +\x31\x1f\x1e\x1b\x2d\x38\x22\x25\x35\x31\x37\x2e\x31\x1c\x20\x33\ +\x38\x33\x2c\x37\x28\x39\x2e\x2d\x01\x0a\x0a\x0a\x0e\x0d\x0e\x1b\ +\x10\x10\x1a\x2b\x25\x20\x26\x2c\x37\x2f\x36\x38\x2f\x38\x2b\x37\ +\x2b\x37\x2e\x37\x2b\x37\x2c\x32\x31\x2f\x2c\x2b\x38\x37\x2c\x2b\ +\x2c\x2f\x2b\x2c\x2c\x2f\x37\x37\x37\x2f\x2f\x2b\x2d\x2c\x2c\x30\ +\x2c\x2c\x38\x2b\x2c\x37\x2c\x2c\x2c\xff\xc0\x00\x11\x08\x00\x66\ +\x00\x66\x03\x01\x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1b\ +\x00\x00\x02\x02\x03\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x06\x04\x05\x01\x02\x03\x07\xff\xc4\x00\x3c\x10\x00\x02\ +\x01\x02\x03\x06\x03\x05\x06\x05\x03\x05\x00\x00\x00\x00\x01\x02\ +\x11\x00\x03\x04\x12\x21\x05\x22\x31\x41\x51\x61\x06\x13\xa1\x14\ +\x15\x32\x71\x91\x23\x42\x52\x81\xd1\xd2\x54\x62\x92\xa2\xb1\x07\ +\x73\x82\x24\x33\x34\xc1\xf1\xff\xc4\x00\x19\x01\x01\x01\x00\x03\ +\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\ +\x05\x04\xff\xc4\x00\x25\x11\x00\x02\x01\x03\x04\x01\x04\x03\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x11\x41\x04\x12\x21\ +\x31\xa1\x14\x51\x61\x81\x91\xb1\xf0\xff\xda\x00\x0c\x03\x01\x00\ +\x02\x11\x03\x11\x00\x3f\x00\xf6\xab\x97\xd5\x48\x0c\xc1\x49\xe0\ +\x0b\x00\x4f\xad\x63\xda\x53\xf1\x2f\xf5\x8f\xd6\xbc\xbf\xc4\x7b\ +\x7e\xf6\x17\x1f\x8b\xf2\xc8\xd4\xa8\xd7\x88\x00\x0d\x07\x6d\x4d\ +\x5a\x5b\xda\xd8\x93\xb3\xce\x37\xcd\x39\x83\x46\x48\x11\xc6\x38\ +\xcc\xd7\xbb\xd0\xcb\x6c\x65\x7e\xed\xe4\xf2\xfa\xb8\xee\x71\xf6\ +\xbf\x81\xd4\xe2\xd6\x4e\xf8\xfe\xa1\xfa\xd1\xed\x6b\xf8\xc7\xf5\ +\x0f\xd6\xbc\xd7\x64\xf8\x9b\x1d\x89\xba\x96\x6d\xb0\xcc\xc7\x9f\ +\x00\x39\x93\xda\x9b\x3d\xa4\x79\x9e\xcb\xed\xa7\xda\x3a\x64\x19\ +\x67\x8c\x71\xf4\x9a\xc6\xa6\x8a\x54\xdd\xa4\xfe\x73\xd7\xbf\x45\ +\x86\xaa\x33\x57\x5f\xde\x4b\xdf\x6b\x5f\xc6\x3f\xa8\x7e\xb4\x7b\ +\x5a\xfe\x31\xfd\x43\xf5\xa4\x5b\x3b\x4b\x68\xb6\x2c\xe0\xe5\x43\ +\x83\xa9\xd7\x28\x5f\xc5\xf2\x8a\xb8\xbf\xb4\xed\xdb\x7f\x21\xf1\ +\xc4\x5d\x1a\x13\x90\x65\x07\xa1\xe9\xf5\xa9\x2d\x23\x8b\x4a\xf7\ +\xe2\xfc\x5d\xf1\xf4\x84\x75\x29\xf3\xd6\x39\xb7\x7f\x91\x85\xb1\ +\x8a\x38\xb8\x1f\xf2\x5f\xd6\xba\x2d\xc2\x40\x20\xc8\x3c\xc1\x11\ +\x5e\x5d\x8f\xf1\x7e\x2a\xd5\xcb\x96\xf3\xab\x85\x62\xb2\x38\x37\ +\x7e\x34\xc3\xfe\x9a\xe2\x9a\xe5\x8b\xc1\xb5\x8b\xa6\x3a\x09\x00\ +\x90\x3b\x4c\xd5\xad\xa2\x95\x2a\x7b\xd8\xa5\xaa\x8d\x49\xed\x43\ +\x8e\x73\xde\xb1\x9c\xf7\xad\x63\xb7\xad\x63\xf2\xf5\xaf\x19\xea\ +\x34\xc5\xe3\x0d\xb5\xce\x64\x89\x03\xea\x62\xa7\xa1\x90\x0c\x1d\ +\x7b\xd5\x26\xdc\x1f\x64\x74\xfb\xcb\xcf\xf9\x85\x5c\xd8\x1b\xab\ +\xa7\x2e\xb5\x01\xbc\x76\x3f\x5a\x28\x8e\xde\xb4\x55\x07\x8b\x78\ +\xe3\xff\x00\x3f\x13\xf3\x1f\xe1\x69\x97\x67\x61\x1e\xee\xc6\x29\ +\x6d\x0b\xb1\x73\x00\x71\x3b\xd5\xd7\xc5\x7e\x08\xbb\x7f\x10\xf7\ +\xed\x15\x21\xe0\x90\xcd\x04\x10\x00\xe9\xa8\xa8\xf8\x4f\x0c\x6d\ +\x2b\x2a\x12\xdd\xc0\x8a\x35\x81\x77\x4d\x7f\xe3\x5d\xb7\xa8\xa5\ +\x2a\x30\x4a\x49\x35\x67\xcd\xf0\x72\x55\x0a\x91\xab\x36\xe2\xec\ +\xee\xb8\xf9\x21\x78\x33\x0e\xf8\x4c\x6d\xa1\x88\x46\xb4\x6e\x2b\ +\x2a\xe6\xd2\x4e\x9c\x2b\xb8\xf0\xe6\x23\xde\x61\xbc\xb6\xc9\xe7\ +\x79\xb9\xfe\xee\x59\x9e\x3d\x79\x45\x72\xda\x1e\x16\xc7\xde\x60\ +\x6e\x11\x70\xae\x80\x9b\xbc\x3e\x5a\x54\x9f\x75\xed\x5c\xb9\x3c\ +\xc6\xcb\x11\xff\x00\x78\x4f\xd6\x26\x93\xd4\x45\xc9\xcd\x4e\x37\ +\x6a\xcf\xbb\x7d\x08\xd1\x92\x5b\x5c\x5d\x93\xba\xeb\xc9\x6f\x85\ +\xda\x56\xce\xd7\xbc\xb2\x35\xb4\x2d\x83\x3c\x58\x6a\x47\xcf\xf4\ +\xa8\x3b\x1b\x60\xa8\xc4\x5d\xb1\x89\xc2\x35\xc2\xf7\x1d\xd6\xf6\ +\xb9\x32\xf1\x02\x7a\xf1\xfa\xd5\x18\xf0\x56\x2c\x19\xc8\xb3\xc6\ +\x7c\xdd\x67\xe9\xc6\xad\x3d\xdd\xb5\x72\xe5\xf3\x1a\x3f\xdd\x13\ +\xf5\x89\xad\x72\x95\x28\xab\x53\xa8\xba\x4b\x38\xcf\x1f\xa3\x35\ +\x1a\x8d\xde\x70\xcb\x78\xce\x39\x14\x76\xf5\x85\xb7\x88\xbe\x8a\ +\x32\xaa\xb9\x00\x74\x14\xe9\xfe\x96\x8f\xb1\xc4\x7f\xbb\xff\x00\ +\xa1\x54\x97\x3c\x17\x8b\x62\x49\x45\x24\xea\x49\xbb\x24\xfc\xf4\ +\xa6\xff\x00\x06\x6c\x37\xc1\xd9\x75\xb9\x05\x9d\xf3\x10\x0e\x83\ +\x40\x22\x79\xd5\xd7\x6a\x69\xce\x8a\x84\x5d\xdf\x04\xd2\x50\xa9\ +\x0a\xae\x4d\x59\x0c\x31\xdb\xd6\xb1\xf9\x7a\xd1\x1d\xbd\x6b\x11\ +\xdb\xd6\xb8\xe7\x50\x83\xb6\xc7\xd9\x1d\x3e\xf2\xf3\xfe\x61\x57\ +\x56\x06\xea\xe9\xcb\xad\x52\x6d\xa1\xf6\x47\x4f\xbc\xbc\xff\x00\ +\x98\x55\xdd\x81\xba\xba\x72\xeb\x50\x1b\xc7\x6f\x5a\x28\x8e\xde\ +\xb4\x55\x01\x1d\xbd\x68\x8e\xde\xb4\x47\x6f\x5a\x23\xb7\xad\x01\ +\x15\x86\xa7\x4e\x7d\x6b\x11\xdb\xd6\xa1\xed\xbc\x23\x5e\xb3\x7e\ +\xd2\x31\xb4\xee\xa5\x55\xc1\x32\xa4\xf3\x11\xce\x97\xed\x78\x7f\ +\x1a\x92\xab\x8d\x66\x07\x31\xcc\xc3\x7b\x52\x4f\x48\xe1\x1f\x28\ +\xef\x50\x0d\x71\xdb\xd6\xb1\x1d\xbd\x69\x67\x6b\xd8\xb8\x12\xd2\ +\x36\x2a\xdd\xbb\x8b\x66\xe0\x76\x7b\x99\x49\xcc\x32\x87\xcb\x23\ +\x83\x46\xbd\x6a\x07\x96\x56\xce\x19\x5b\x1b\x68\xe4\x7b\x6d\x9f\ +\xcf\x92\xca\x1a\x08\xd3\xe2\x04\xee\x93\xc2\x7a\x70\xaa\x07\x58\ +\xed\xeb\x5a\xc7\x6f\x5a\x4d\xc3\xe1\x4b\x2e\x1b\x0a\xb8\xc4\x7b\ +\xb6\xee\x9b\xa4\x0b\xb2\xd7\x13\x78\x65\x2d\x1b\xc4\x1e\x3a\x72\ +\xe5\xc6\x87\x6b\x93\x91\x76\x8d\xbc\xea\x15\xda\x5d\x23\x2a\xc8\ +\x73\xc3\xf1\x03\xa7\x21\xc6\x28\x07\x28\xed\xeb\x58\x8e\xde\xb4\ +\xad\x30\x8f\x6f\xdb\x57\xce\xbb\xe5\xc3\xf9\x8a\x62\x20\xb4\x0e\ +\x0b\x98\x1d\x3e\x62\xb8\x61\xed\xdd\x53\x6a\xe1\xc7\xda\x65\x52\ +\xa5\xc9\x75\x87\x40\xcf\x32\x67\xa3\x28\x9d\x38\x73\xa8\x06\x1d\ +\xb4\x3e\xc8\xe9\xf7\x97\x9f\xf3\x0a\xbc\xb0\x37\x57\x4e\x5d\x69\ +\x7b\x68\xdf\x5b\x96\x33\xa1\x57\x52\xcb\x0c\xac\x18\x1d\xe0\x34\ +\x23\x4a\x61\xb0\x37\x57\x4e\x5d\x68\x0d\xe3\xb7\xad\x14\x47\x6f\ +\x5a\x2a\x80\x8e\xde\xb4\x47\x6f\x5a\x23\xb7\xad\x11\xdb\xd6\x80\ +\xae\xc7\xdf\x16\x96\xe5\xc6\x07\x2a\x02\xc6\x01\x26\x07\x18\x03\ +\x53\x55\x98\x6f\x12\x61\x9f\x37\xda\x04\x2a\x01\x21\xe5\x18\x02\ +\x33\x03\x07\x94\x55\xae\x22\xd0\x6c\xea\xcb\x21\xa4\x11\xd4\x1d\ +\x08\xaa\xdb\xdb\x03\x0e\xe0\x86\xb0\x86\x74\x3e\x83\xfc\x01\x50\ +\x15\xde\x21\x6c\x10\xb8\xcf\x89\x07\x3d\xbb\x6b\x3f\x1f\xc2\xcc\ +\x4a\xf0\xd0\xef\x29\xf9\x45\x42\xc5\xe1\x76\x6d\x9c\xac\x51\xa3\ +\xca\x62\xa5\x4d\xc2\x02\xa9\xcc\x72\xc1\xf8\x81\x83\xd7\x85\x49\ +\xf1\x1e\x51\x74\xaf\xb1\x36\x27\xcc\xb4\x03\x30\xcd\x94\x80\xc0\ +\x04\x68\x04\x46\xa4\xfd\x6a\xbb\x11\x8e\x2e\x50\xfb\xba\xe6\x6c\ +\x93\xaf\x99\x08\x19\xf2\xb0\x10\x38\xe5\x93\xa6\xb5\x41\x6b\x62\ +\xc6\x0a\xd3\xd9\xb8\x06\x56\x28\x5e\xdb\x33\x34\x2a\x6f\x4f\x13\ +\x00\x6f\x1d\x3b\xd7\x2b\xbb\x2f\x67\x10\x43\x64\x23\x29\x5d\x6e\ +\x36\x8a\x33\x12\x06\xba\x01\x27\xe5\xf9\x57\x2c\x0d\xe3\x72\xed\ +\x9b\x47\x04\x52\xc8\xb6\x50\x18\x71\xe5\xfc\x5b\xa6\x54\x02\xa4\ +\x28\xe1\xd4\x6a\x6a\x3e\x23\x68\xb9\x62\xc7\x67\xbb\xa8\x46\x30\ +\x03\xe6\x0d\x2f\x20\xca\xc1\x9e\xd3\xc7\x49\x9a\xc1\xee\xf8\x37\ +\xc5\xd0\xb2\xdd\xba\xf9\xe8\x95\x7f\x67\x6c\xeb\x48\x97\x1f\x2d\ +\xb4\x17\x65\x0b\x5c\x60\x05\xc1\xa4\xae\xbc\x60\x71\xe7\x5a\xe0\ +\x76\x56\xce\x76\x16\xed\x85\x66\xcb\x01\x7c\xc6\x32\xaa\x55\xe4\ +\x09\xe1\x25\x75\xfc\xab\x86\x2b\x69\x35\xd3\x69\x5f\x00\xec\x86\ +\xe6\xf0\x2a\xe4\xae\x60\x0e\x7f\x86\x32\xc9\x8d\x24\xf5\x02\xb9\ +\x60\xf1\xc1\x0a\xdc\x4d\x9b\x71\x2e\x84\x95\xdd\x61\x19\x8a\xa1\ +\x19\xb2\xf4\x00\xfc\x85\x64\x69\x95\xaf\xc7\x43\x06\x27\x02\x96\ +\x30\xfe\x5d\xb5\xca\x81\x81\x02\x4f\x36\x04\xfa\x9a\x65\xb0\x37\ +\x57\x4e\x5d\x69\x54\xe2\x9a\xf6\x17\xcc\x7b\x46\xcb\x16\x00\xa3\ +\x1d\x44\x30\x1d\x06\x87\x8f\xe7\x4d\x56\x06\xea\xe9\xcb\xad\x08\ +\x6f\x1d\xbd\x68\xa2\x3b\x7a\xd1\x54\x04\x76\xa2\x3b\x51\x97\xb5\ +\x19\x7b\x50\x14\xdb\x75\xae\xad\xab\xe6\xc2\x86\xbc\x14\xf9\x60\ +\xea\x0b\x72\x91\x22\x45\x2f\x5a\xda\x5b\x49\x65\x5f\x09\x6d\x9b\ +\x7a\x0a\xb6\xef\x13\x02\x67\xa4\x7c\xe7\x94\x53\x5d\xed\x0b\x48\ +\x03\x5e\xb5\xa0\xd7\x50\x24\x7c\xea\x02\x97\x11\x8b\xc5\x7f\xd2\ +\x95\xb4\x41\x65\x63\x78\x05\x0c\xa8\x40\x30\x27\x30\x33\x9a\x3e\ +\x62\x78\x54\x77\xc7\x63\x4d\xbc\x31\x16\x48\x72\xd6\xbc\xd0\x50\ +\x44\x18\xf3\x3e\xfe\xec\x6b\x11\x3f\x9d\x48\xdb\x1b\x1d\xaf\xdc\ +\x56\x17\xde\xd2\xe5\xc8\x51\x4f\xc4\x73\x06\x9e\x3a\x18\xd3\x4e\ +\x46\xab\x9f\xc3\x0f\xba\xa7\x18\xe4\x2a\x81\x04\x9d\x4e\x6c\xf2\ +\xc7\x34\x9e\x11\xf2\xa0\x3a\x26\x2f\x1f\xe4\xe1\x89\xb6\x3c\xd3\ +\x78\x8b\xdb\x83\x4b\x7a\xc3\x05\xcd\xbb\x3a\x75\x35\xd2\xe6\xd2\ +\xc7\x00\x0f\xb2\x21\x24\xac\x80\xe6\x44\x89\x3c\xf8\x03\xa4\xd6\ +\xf8\x1f\x0f\x35\xbb\xe9\x78\xdf\x67\x65\x05\x48\x96\xde\x07\x31\ +\xdf\x05\x8e\xb2\xdf\x2d\x04\x01\x51\xae\x78\x51\xc9\x2d\xed\x37\ +\x55\x8a\x14\xcc\x0b\x49\x04\xb1\x96\x96\x22\x77\xb9\x47\x0d\x22\ +\x80\x98\x31\x78\xb1\x6e\xe3\x1b\x28\x6e\x7d\x9f\x97\x6e\x48\x1a\ +\xfc\x72\x67\x58\x1a\xfe\x55\x1f\x0f\xb4\x71\xc5\xad\x67\xc2\x80\ +\x19\x94\x3c\x36\x88\x25\xc1\x61\xaf\xe1\x08\x75\xeb\x51\x6f\x6c\ +\x12\x86\xdb\x36\x2d\xe5\x18\x30\x24\x99\x61\x00\x15\x27\x37\xc1\ +\xa7\x28\x3d\x49\xaa\xeb\xd6\x72\x2e\x4f\x6d\xbb\x73\x74\x08\x59\ +\xcc\x48\x60\x74\x20\xf3\x02\x3e\xb4\x03\x86\xd8\x1f\x64\x74\xfb\ +\xcb\xfe\x45\x5f\xd8\x1b\xab\xa7\x2a\xf3\xec\x0d\x8b\xeb\x6e\xd5\ +\xab\x85\x8e\x67\x95\x0e\x4e\x72\x27\x34\xb4\x99\x00\x70\xd6\xbd\ +\x06\xd2\x42\x81\x1c\xa8\x0d\xe3\xb5\x14\x65\xed\x45\x50\x11\xda\ +\x88\xed\x44\x76\xa2\x3b\x50\x14\xbb\x73\x67\x8c\x45\xab\xf6\x1a\ +\x54\x5c\x52\xa4\x8e\x20\x1e\x95\x55\x6f\xc3\xb9\x2e\x5a\x74\xb8\ +\xea\xa9\x70\xb1\x4c\xec\x41\x5c\xa0\x2a\x71\xe0\x08\x9f\xfe\xd5\ +\xfd\xe1\xbc\xda\x73\xae\x71\xda\xa0\x13\x36\xd6\xce\xc3\xdb\xbe\ +\xa6\xf6\x20\xa3\x0b\xc7\x14\xa8\x10\x9e\x39\x12\x34\x99\xd5\x40\ +\xfc\xce\x9c\xc4\x1c\x62\xe0\xee\x11\x73\xda\x09\x2e\x2d\x15\xcb\ +\x69\xe7\x71\xb2\x86\x00\xfd\xec\xcd\x1a\xf2\xe4\x69\xe6\xfe\x06\ +\xdb\xb0\x67\xb6\x8c\xc0\x40\x24\x02\x40\x99\xd3\x4e\xb5\xc7\xdd\ +\x16\x38\xf9\x16\xb8\x65\xf8\x57\x87\x18\xe1\xc2\x68\x0a\x4b\x78\ +\xac\x3d\xdc\x51\x55\xb8\xf9\xef\x00\xeb\xba\xea\x1b\x28\x65\x80\ +\xda\x69\xba\x4f\x78\xe2\x6a\x37\xbc\x70\xa9\x73\x7b\x11\x70\x28\ +\x40\xfb\xc2\xe6\x56\x02\x57\x8c\x6b\xaa\x92\x3a\xc9\x89\xa6\x7b\ +\x5b\x3a\xd2\x10\xcb\x69\x14\x8e\x04\x28\x04\x71\xed\xdc\xfd\x6a\ +\x36\x33\x03\x62\xda\x33\x1b\x36\xe2\x0c\xee\x8d\x66\x67\x97\x73\ +\xf5\xac\x76\x47\xd8\xdf\xea\xaa\xa5\x6d\xd8\xb6\x04\xe0\x6c\xe2\ +\xf6\x96\x01\x2d\xbb\x5c\x4b\x6b\x0c\xb0\xd9\x08\x55\x27\x7a\x78\ +\x9d\x46\x9f\x2a\x7e\xbf\x6b\x0f\x83\x42\xe2\xd2\x27\x20\x14\x09\ +\x27\xa0\xd2\x95\x76\x02\xda\xc3\x35\xdc\x63\xa2\x87\xb9\xbb\x69\ +\x14\x0c\xc5\x7a\xc7\x20\x74\xd7\xb5\x5e\xec\xcd\x9b\x73\x13\x70\ +\x62\x31\x03\x41\xf0\x27\x25\x15\x91\xa5\xb6\xdd\xd9\x2b\x62\x60\ +\x9a\xe3\x1c\x4d\xd1\xbc\xdf\x08\xfc\x23\x90\x15\x7d\x1d\xab\x0a\ +\x91\xa0\x02\xb3\x1d\xaa\x90\x23\xb5\x14\x47\x6a\x28\x02\x3b\x0a\ +\x23\xb0\xa2\x8a\x02\x97\x6b\x60\xae\xb3\x4d\xbb\x9e\x58\xe6\x20\ +\x1f\xf2\x2a\x07\xbb\x71\x3f\xc4\x7f\x6a\xfe\xda\x28\xa8\x03\xdd\ +\xb8\x8f\xe2\x3f\xb5\x7f\x6d\x1e\xec\xc4\x7f\x11\xfd\xab\xfb\x6b\ +\x14\x50\xa6\x7d\xd9\x88\xfe\x23\xfb\x57\xf6\xd7\x2b\xfb\x12\xf5\ +\xc1\x0d\x7a\x47\xc8\x7e\xda\x28\xa0\x27\xec\x9f\x0d\xa5\xb3\x9d\ +\xfe\xd1\xba\x93\x57\xc1\x63\x90\xa2\x8a\xa4\x33\x1d\x85\x11\xd8\ +\x51\x45\x00\x47\x61\x45\x14\x50\x1f\xff\xd9\ +\x00\x00\x09\xba\ +\xff\ +\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ +\x01\x00\x00\xff\xdb\x00\x84\x00\x09\x06\x07\x08\x07\x06\x11\x08\ +\x07\x08\x16\x14\x15\x17\x16\x16\x1b\x13\x15\x11\x17\x1b\x20\x1f\ +\x1b\x17\x20\x1d\x1b\x19\x20\x1d\x1f\x1f\x24\x1f\x34\x2c\x1a\x26\ +\x31\x27\x1f\x17\x26\x37\x24\x31\x32\x2b\x3a\x3a\x3a\x23\x1f\x37\ +\x38\x37\x38\x37\x2d\x2e\x3a\x2b\x01\x0a\x0a\x0a\x0d\x0d\x0e\x1b\ +\x10\x10\x1a\x31\x25\x20\x25\x34\x37\x37\x34\x2c\x31\x36\x37\x32\ +\x34\x35\x37\x34\x34\x37\x37\x2c\x2c\x2c\x37\x34\x35\x37\x2f\x2c\ +\x2c\x34\x2c\x2c\x2c\x2c\x34\x2c\x2f\x2c\x34\x2c\x34\x34\x2c\x2c\ +\x2c\x2c\x2c\x2c\x34\x2c\x34\x2f\x34\xff\xc0\x00\x11\x08\x00\xa0\ +\x00\xa0\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1b\ +\x00\x01\x00\x03\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x05\x06\x07\x04\x03\x02\x01\xff\xc4\x00\x40\x10\x00\x01\ +\x02\x04\x01\x08\x06\x07\x07\x02\x07\x00\x00\x00\x00\x00\x00\x01\ +\x02\x03\x04\x05\x11\x12\x06\x13\x15\x16\x21\x56\x93\x94\x31\x41\ +\x55\xa4\xd2\xd3\x14\x24\x51\x53\x61\x64\x71\x22\x32\x35\x75\x81\ +\x91\xb1\x33\x92\x23\x42\x43\x52\xa1\xd1\xf0\xff\xc4\x00\x18\x01\ +\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x03\x02\x04\x01\xff\xc4\x00\x25\x11\x01\x00\x02\x01\x03\x04\ +\x03\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\x03\x11\x12\ +\x51\x04\x13\x52\xa1\x14\x33\x71\x34\x31\x32\x21\xff\xda\x00\x0c\ +\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xdc\x40\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\ +\x47\x28\x6f\xac\x0e\xf4\x8c\xfe\x0c\xc4\x1c\x19\x9c\xfe\x1c\x58\ +\xe3\x62\xfe\x9e\xcb\xdb\x37\xd3\xf0\x03\x8b\xd5\x3e\x6f\xbe\x00\ +\xf5\x4f\x9b\xef\x80\x3d\x53\xe6\xfb\xe0\x0f\x54\xf9\xbe\xf8\x03\ +\xd5\x3e\x6f\xbe\x01\xfb\x28\xb4\xd9\xd7\x3d\x92\x75\x07\x3d\x59\ +\x64\x88\xd6\x4c\xc5\x55\x62\xed\x4b\x39\x33\x97\x62\xec\x72\x59\ +\x6d\xd0\xbe\xc0\x3a\x7d\x02\x17\xbd\x8d\xc7\x8d\xe3\x03\x86\x04\ +\xcd\x2a\x69\x98\xe4\xa7\x62\xc6\x4e\x85\x74\xbc\x69\x88\x88\x8b\ +\xd3\x65\x56\x39\x51\x16\xca\x8b\x6f\x8a\x01\xe9\xea\x9f\x37\xdf\ +\x00\x7a\xa7\xcd\xf7\xc0\x1e\xa9\xf3\x7d\xf0\x07\xaa\x7c\xdf\x7c\ +\x00\x9e\x89\x7d\xbe\x97\xdf\x00\xb5\x64\xe6\x7f\x57\xa5\x3d\x2f\ +\x16\x3c\xc4\x2c\x79\xcb\xe2\xc5\x81\xb7\xc5\x7d\xb7\xbd\xef\x70\ +\x24\x40\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2f\x28\x64\xdd\x31\ +\x4f\x7c\x79\x68\x38\xa3\x43\x63\xd6\x0d\xad\x75\x75\xaf\x82\xff\ +\x00\xed\x72\xa3\x51\x53\xe8\xbd\x28\x8a\x81\x0b\x21\x98\xac\xd4\ +\x19\x01\xaa\x91\x20\xac\x1c\xeb\xed\xd0\xe4\x72\xb5\x21\x22\xa7\ +\x5b\x5c\x99\xe5\xb7\x5e\x0b\x2e\xcd\x8a\x16\xe0\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x32\x62\xad\ +\x54\x93\x8b\x0a\x15\x22\x4a\x14\x45\x5a\x7c\x86\x3c\xf4\x45\x6d\ +\x91\x12\x2a\xa5\xac\xd5\xbf\xde\x5f\xd9\x0e\x9a\x62\xc7\xb3\x7d\ +\xe6\x52\xb5\xed\xbb\x6d\x61\x62\xd3\xf9\x5b\xd8\xf2\xbc\xc3\xfc\ +\xb1\xb7\xa7\xe6\x4d\x72\x71\x06\x9f\xca\xde\xc7\x95\xe6\x1f\xe5\ +\x8d\xbd\x3f\x32\x6b\x93\x88\x34\xfe\x56\xf6\x3c\xaf\x30\xff\x00\ +\x2c\x6d\xe9\xf9\x93\x5c\x9c\x41\xa7\xf2\xb7\xb1\xe5\x79\x87\xf9\ +\x63\x6f\x4f\xcc\x9a\xe4\xe2\x0d\x3f\x95\xbd\x8f\x2b\xcc\x3f\xcb\ +\x1b\x7a\x7e\x64\xd7\x27\x10\x69\xfc\xad\xec\x79\x5e\x61\xfe\x58\ +\xdb\xd3\xf3\x26\xb9\x38\x83\x4f\xe5\x6f\x63\xca\xf3\x0f\xf2\xc6\ +\xde\x9f\x99\x35\xc9\xc4\x1a\x7f\x2b\x7b\x1e\x57\x98\x7f\x96\x36\ +\xf4\xfc\xc9\xae\x4e\x20\xd3\xf9\x5b\xd8\xf2\xbc\xc3\xfc\xb1\xb7\ +\xa7\xe6\x4d\x72\x71\x06\x9f\xca\xde\xc7\x95\xe6\x1f\xe5\x8d\xbd\ +\x3f\x32\x6b\x93\x88\x34\xfe\x56\xf6\x3c\xaf\x30\xff\x00\x2c\x6d\ +\xe9\xf9\x93\x5c\x9c\x41\xa7\xf2\xb7\xb1\xe5\x79\x87\xf9\x63\x6f\ +\x4f\xcc\x9a\xe4\xe2\x17\x53\x99\x50\x00\x00\x00\x00\x01\x93\xe4\ +\x6f\xe2\x2c\xfc\xb6\x47\xf8\x71\xd3\x6f\xe7\x8f\xd4\xa3\xec\x9f\ +\xc5\xc4\xe6\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x38\x00\ +\x00\x00\x00\x00\x06\x4f\x91\xbf\x88\xb3\xf2\xd9\x1f\xe1\xc7\x4d\ +\xbf\x9e\x3f\x52\x8f\xb2\x7f\x17\x13\x99\x50\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x2c\xe0\x00\x00\x00\x00\x00\x19\x3e\x46\xfe\x22\ +\xcf\xcb\x64\x7f\x87\x1d\x36\xfe\x78\xfd\x4a\x3e\xc9\xfc\x5c\x4e\ +\x65\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x80\x00\x00\x00\ +\x00\x00\x63\x74\x0a\x9c\xad\x32\x76\x14\x49\xc7\x39\x11\xd4\xe9\ +\x14\x4c\x2d\x73\xb6\xd9\xcb\xd4\x9b\x0e\xca\xe3\xb5\xf0\x44\x57\ +\x94\x26\xd1\x5c\x93\x32\xb5\x53\xab\x92\x35\x28\xf9\x89\x47\x3d\ +\x56\xd7\x5c\x50\xde\x89\x6f\xaa\xa1\x1b\xe0\xbd\x23\x5b\x29\x5c\ +\x95\xb4\xe9\x05\x46\xb9\x23\x4d\x8f\x98\x9b\x73\xd1\x6d\x74\xc3\ +\x0d\xea\x96\xfa\xa2\x0a\x60\xbd\xe3\x5a\x96\xc9\x5a\xce\x92\xe5\ +\xd6\xda\x42\x7f\xa9\x13\x85\x13\xc2\x6f\xe2\xe5\xe1\x9e\xf5\x12\ +\x53\xd5\x19\x79\x09\x54\x99\x99\xc4\x8d\x5b\x74\x31\xca\xa9\x7f\ +\x6a\x22\x5d\x09\x53\x1d\xaf\x6d\xb0\xdc\xda\x22\x35\x94\x6e\xb6\ +\x52\x3d\xe4\x4e\x14\x4f\x09\x5f\x8b\x95\x9e\xed\x12\x52\x35\x19\ +\x79\xf9\x55\x99\x96\xc4\xad\x4b\xf4\xb1\xc8\xab\x6f\x62\x2a\x5d\ +\x49\x5f\x1d\xa9\x3b\x65\xa8\xb4\x4c\x6b\x08\xdd\x6d\xa4\x7b\xc8\ +\x9c\x28\x9e\x12\xbf\x17\x2f\x0c\x77\xa8\xea\xa7\x57\x24\x6a\x51\ +\xf3\x12\x8e\x7a\xad\xae\xb8\xa1\xbd\x12\xdf\x55\x43\x17\xc1\x7a\ +\x46\xb6\x6a\xb9\x2b\x69\xd2\x1f\x33\xb9\x43\x4e\x91\x99\x59\x79\ +\x97\x3d\x1c\x9d\x36\x86\xf5\x4f\xdd\x13\x69\xed\x3a\x7b\xda\x35\ +\x82\x72\x56\x27\x49\x78\xb3\x2a\xa9\x4f\x7a\x31\x8f\x88\xaa\xaa\ +\x88\x89\x9a\x89\xd3\xfd\xa7\xbf\x17\x23\xce\xed\x5d\xd5\x3a\xa4\ +\xad\x2d\x8d\x7c\xe2\xb9\x11\xca\xa8\x8a\xd6\x39\xdb\x7f\x44\xd8\ +\x4f\x1e\x2b\x64\xff\x00\x96\xad\x68\xaf\xfa\x8f\xd6\xca\x47\xbc\ +\x89\xc2\x89\xe1\x2b\xf1\x72\xb3\xdd\xa3\x44\x39\x94\x00\x00\x00\ +\x00\x00\x18\xdd\x02\x99\x2b\x54\x9d\x85\x0e\x71\xae\x54\x6d\x3a\ +\x45\x53\x0b\x9c\xdd\xb6\x72\x75\x2e\xd3\xb2\xb9\x2d\x4c\x11\x35\ +\xe5\x09\xac\x5b\x24\xc4\xad\x32\x14\x0a\x7d\x3e\x63\x3f\x2c\xc7\ +\x23\xad\x6f\xb5\x11\xeb\xff\x00\x0a\xa4\x6f\xd4\x5e\xf1\xa4\xa9\ +\x18\xeb\x13\xac\x3f\x6a\x34\x2a\x7d\x4a\x3e\x7e\x6a\x1b\xb1\x5a\ +\xd7\x6b\xdc\xdd\x9f\xa2\x8a\x67\xbd\x23\x48\x2d\x8e\xb6\x9d\x65\ +\xcc\x99\x29\x48\x45\xba\x43\x7f\x16\x27\x88\xdf\xcb\xcb\xcb\x3d\ +\x9a\x24\x6a\x14\xe9\x6a\x8c\xb2\x4b\xcd\x35\x55\xa8\xa8\xa9\x67\ +\x2a\x2d\xd3\xe2\x8b\x72\x34\xc9\x6a\x4e\xb5\x6e\xd5\x8b\x46\x92\ +\x8d\xd5\x3a\x47\xbb\x89\xc5\x89\xe2\x2d\xf2\xb2\xb3\xda\xa2\x4e\ +\x4e\x42\x5e\x4e\x53\xd1\x60\x35\x70\x6d\xd8\xe5\x55\xe9\xe9\xda\ +\xaa\x46\xf9\x2d\x6b\x6e\x9f\xf5\xa8\xac\x44\x68\x8c\xd5\x2a\x47\ +\xbb\x89\xc5\x89\xe2\x2d\xf2\xb2\xb1\xd9\xa3\xaa\x9d\x42\xa7\xd3\ +\x63\xe7\xe5\x61\xbb\x15\xad\x77\x3d\xce\xd9\xfa\xa9\x8b\xe7\xbd\ +\xe3\x49\x6a\xb8\xeb\x59\xd6\x1f\x33\xf9\x3f\x4e\x9f\x99\x59\x89\ +\x96\x3d\x5c\xb6\xbd\xa2\x3d\x3a\x3e\x08\xa2\x9d\x45\xe9\x1a\x41\ +\x6c\x75\x99\xd6\x5e\x2c\xc9\x4a\x43\x5e\x8e\x48\x4f\xd8\xb7\xdb\ +\x16\x22\xa7\xea\x98\xb6\x9a\xf9\x59\x79\x79\xda\xa3\xbe\xa7\x4c\ +\x95\xaa\x43\x6c\x39\xc6\xb9\x51\x16\xe9\x85\xce\x6e\xde\x8e\xa5\ +\xda\x4f\x1e\x4b\x63\xff\x00\xda\xb5\x6a\xc5\xbf\xd4\x76\xa9\xd2\ +\x3d\xdc\x4e\x2c\x4f\x11\x5f\x95\x95\x9e\xd5\x1a\x21\xcc\xa0\x00\ +\x00\x00\x00\x00\xc9\xf2\x37\xf1\x16\x7e\x5b\x23\xfc\x38\xe9\xb7\ +\xf3\xc7\xea\x51\xf6\x4f\xe2\xe2\x73\x2a\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x05\x9c\x00\x00\x00\x00\x00\x03\x1e\xc9\xa8\xb3\x10\ +\xe7\xe0\xb6\x4e\x13\x5c\xe7\x48\xd3\xda\x88\xe5\xb2\x2a\x2a\x3e\ +\xfb\x7a\x96\xc9\xb0\xe9\xb7\xd1\x1f\xa9\x47\xd9\x3f\x8b\xac\xbc\ +\x76\x47\x66\x26\x22\xa5\x95\x51\xc8\xe4\xb2\xb5\xc9\xd2\x8a\x9d\ +\x4a\x73\x2a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x38\x00\ +\x00\x00\x00\x00\x06\x41\x92\xb1\x19\x06\xb1\x2b\x16\x2b\xd1\xad\ +\x49\x3a\x7a\xb9\x5c\xb6\x44\x44\x6c\x4b\xaa\xaf\x51\xd3\x6f\xa2\ +\x3f\x52\x8f\xb2\x7f\x16\x79\xfa\xac\x09\xfa\xa4\x38\xb4\xb8\x2e\ +\xc6\xe4\x5c\x6a\xeb\x35\x1c\xc6\xb9\x1a\xe4\x54\x55\x45\xc4\xd4\ +\x73\x55\x16\xdd\x0e\x4f\x6e\xce\x75\x52\x27\x80\x00\x00\x00\x00\ +\x00\x00\x00\x00\x0b\x38\x00\x00\x00\x00\x00\x06\x51\x93\x59\x3c\ +\xfa\xd6\x69\x61\x4f\xac\x2c\x32\x14\xf5\x5f\xf0\xd8\xf4\x5b\xe7\ +\x6d\xb1\xc9\xb2\xca\xc4\x5b\xfc\x4e\x8a\x66\xac\x53\x6d\xab\xaa\ +\x76\xa4\xcc\xeb\x12\xb0\x6a\x2c\xff\x00\xa5\xfa\x4e\xb3\xc4\xc5\ +\x7b\xff\x00\x46\x1f\xde\xb6\x1c\x5f\x5b\x6c\x3d\xee\xe2\xf0\xf6\ +\x6c\xbf\x93\xa3\x54\x6a\xdb\xd3\x13\x83\x0c\x77\x71\x78\x7b\x79\ +\xb2\xfe\x46\xa8\xd5\xb7\xa6\x27\x06\x18\xee\xe2\xf0\xf6\x6c\xbf\ +\x91\xaa\x35\x6d\xe9\x89\xc1\x86\x3b\xb8\xbc\x3d\x9b\x2f\xe4\x6a\ +\x8d\x5b\x7a\x62\x70\x61\x8e\xee\x2f\x0f\x66\xcb\xf9\x1a\xa3\x56\ +\xde\x98\x9c\x18\x63\xbb\x8b\xc3\xd9\xb2\xfe\x46\xa8\xd5\xb7\xa6\ +\x27\x06\x18\xee\xe2\xf0\xf6\x6c\xbf\x91\xaa\x35\x6d\xe9\x89\xc1\ +\x86\x3b\xb8\xbc\x3d\x9b\x2f\xe4\x6a\x8d\x5b\x7a\x62\x70\x61\x8e\ +\xee\x2f\x0f\x66\xcb\xf9\x1a\xa3\x56\xde\x98\x9c\x18\x63\xbb\x8b\ +\xc3\xd9\xb2\xfe\x46\xa8\xd5\xb7\xa6\x27\x06\x18\xee\xe2\xf0\xf6\ +\x6c\xbf\x91\xaa\x35\x6d\xe9\x89\xc1\x86\x3b\xb8\xbc\x3d\x9b\x2f\ +\xe4\xb7\x9c\xca\x80\x00\x00\x00\x04\x0d\x6a\xad\x2d\x37\x25\x1a\ +\x9d\x4c\x9e\x6b\xa3\x39\xaf\x86\xab\x05\xe8\xab\x05\x56\xed\x57\ +\x39\x5a\xbf\x61\x51\x6f\x64\xd8\xaa\xa9\x64\xe8\x55\x40\xe1\x95\ +\x56\xd3\x6a\x2d\x9c\x85\x0e\xd0\xf3\x79\xb8\x8d\x63\x7f\xca\x8b\ +\x78\x6a\x88\x9d\x28\xcb\xc4\x4c\x29\xd4\xf5\xf6\x22\x28\x59\x64\ +\xe7\x25\x67\xa0\x24\xc4\x94\xcb\x22\x31\x6f\x67\x43\x72\x39\x16\ +\xdb\x17\x6a\x6c\x03\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\ +\xf9\x47\x48\x85\x39\x94\x2e\x99\x9c\xa2\xa4\xc3\x73\x10\x5a\xc7\ +\x2c\x36\x3e\xce\x47\xc6\x57\x27\xda\xe8\xfb\xcc\xff\x00\xc8\x07\ +\x06\x81\xa6\x6e\x93\x79\x68\x40\x34\x0d\x33\x74\x9b\xcb\x42\x01\ +\xa0\x69\x9b\xa4\xde\x5a\x10\x0d\x03\x4c\xdd\x26\xf2\xd0\x80\x68\ +\x0a\x66\xe9\x37\x96\x84\x04\x8b\x16\x3c\x38\x69\x0e\x1d\x2e\x32\ +\x22\x22\x22\x22\x31\x11\x11\x13\x62\x22\x25\xf6\x01\xf5\x8e\x67\ +\xb3\x63\x7f\x62\x7f\xd8\x1c\x53\x74\xb9\x59\xd8\xd9\xe9\xdc\x9b\ +\x58\x8e\xb2\x26\x28\x90\x21\xb9\x6c\x9d\x57\x50\x3c\x74\x0d\x33\ +\x74\x9b\xcb\x42\x01\xa0\x69\x9b\xa4\xde\x5a\x10\x0d\x03\x4c\xdd\ +\x26\xf2\xd0\x80\x68\x1a\x66\xe9\x37\x96\x84\x01\x28\x34\xbb\xed\ +\xc9\x26\xf2\xd0\x80\xb7\x64\xdc\xbc\x59\x4c\x9d\x94\x96\x98\x66\ +\x17\x32\x04\x26\xb9\xab\xd4\xe4\x63\x51\x53\xf7\x02\x44\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x0f\xff\xd9\ +\x00\x00\x06\x54\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ +\x00\x00\x06\x1b\x49\x44\x41\x54\x48\x4b\x6d\x56\x6b\x4f\x14\x57\ +\x18\x7e\x66\xf6\xc2\xc2\x82\xec\x80\x80\x08\x8a\x06\xa3\x68\xaa\ +\x91\xa8\xd5\xa6\xe9\x07\x7f\x80\x97\x06\x1b\xd3\x26\xd6\x0f\x6d\ +\xd2\x98\x34\x6d\x5a\x6d\xbf\x18\xdb\xd4\xa6\x69\xfa\xd1\xa6\x69\ +\x1b\x93\x9a\x4a\xe5\x8e\x28\x5e\x88\x92\x82\x45\x10\xd6\xae\x02\ +\x2a\x51\x63\xaa\xc6\x36\x15\x2f\x70\x16\xf6\xbe\xb3\x33\xbb\x7d\ +\xce\x41\xd6\x5b\x27\xd9\x6c\x76\x66\x78\x9f\xf7\xb9\xbc\xef\x41\ +\xfb\xae\xe9\xe4\x1d\x4f\x4e\xae\x4f\xd3\xa0\x2e\x3b\x6d\x21\x9d\ +\xce\xcc\xfc\x78\xe6\xb2\x52\x49\x38\x5d\x6e\xb8\xdd\x6e\x80\x8f\ +\x2d\xdb\x82\x65\x26\x5f\x7a\x6f\xf6\x86\xd3\xe9\x86\x69\xa5\xa6\ +\xb4\x03\x4d\x9d\x91\x3b\xd7\xaf\x7a\xa7\x84\x40\xd1\xdc\xb9\x28\ +\x99\x37\x1f\x0e\x87\x23\xfb\x87\xe9\x4c\x1a\x9a\x0e\x88\x7f\xc6\ +\x71\x6d\x74\x14\x73\x4a\x8b\x50\xba\x60\x01\xca\xe6\x57\xa1\xa8\ +\xb8\x84\x58\x44\xcb\xbc\xdc\x90\x6c\x26\x1e\x8b\x45\xb4\x1f\x5a\ +\xbb\xc4\xc5\xae\x76\x63\x6c\x78\x04\x0e\x97\x13\xaf\xbf\xb1\x01\ +\x05\x73\xe6\x40\x23\x25\xf9\x71\xb0\xba\x4b\x77\x60\x32\x18\x44\ +\xcf\xd9\x1e\x84\x23\x51\x58\xb0\x31\xaf\x62\x21\x76\x7e\xb2\x1b\ +\x19\x9d\x8c\xec\x17\x00\xa8\x86\xd3\xe9\x42\xca\x4a\x0a\xed\xe0\ +\xd1\xb3\xc2\xdf\xdd\x61\x5c\xbf\x32\x0a\x9d\x9d\x6f\xd8\xb0\x1e\ +\x05\x05\x05\x59\x00\x5d\xd7\xa1\xeb\x2e\x04\x09\xd0\x7b\xae\x17\ +\x89\x78\x0c\x69\xdb\xc6\x9c\x92\x52\xbc\xf7\xe9\x5e\x68\x0e\x17\ +\x32\x69\xfb\x79\xa9\x88\x27\x01\x28\x91\xd0\x0e\x75\xfe\x2e\x06\ +\x4f\xb7\x19\x63\x04\x70\x38\x9d\x58\xff\xea\x13\x00\x7d\xc6\x14\ +\x9d\x0c\x1c\x4e\x07\x82\x22\x88\x73\x7d\x7f\x20\x26\x01\x58\xd0\ +\x47\x80\x0f\x3e\xdf\x47\x00\xf7\x73\x00\x19\x4a\x0a\x68\xf4\xcb\ +\x05\x2b\x49\x80\x5f\xbb\x7a\xc4\x85\xce\x36\xe3\xda\x28\x25\x22\ +\xc0\xba\x75\xeb\xb2\x0c\x24\x80\x94\xc9\xc9\xfb\x82\x1e\x9d\xef\ +\x3f\x4f\x80\x38\xac\x54\x0a\x45\x65\x65\xf8\xf8\xcb\x6f\xa1\xd1\ +\xcc\x67\x19\x64\x9e\xf8\x21\x19\x24\x53\x94\xa8\xa5\x7b\x40\xf4\ +\x76\xb6\x1a\xa3\x01\xbf\x02\x58\xbb\x76\xad\x02\x90\xd2\xc8\xe2\ +\xf2\x92\xa6\x4b\x89\xfa\x07\xfa\x99\x1e\x9b\x05\xd3\xf0\xe6\x17\ +\x62\xdb\xce\xf7\xa1\xb3\x53\x80\x41\x90\x49\xc8\x68\x4a\x66\x8d\ +\xec\xdd\x34\x39\x65\xd9\x42\x3b\xda\x33\x24\x7a\x4f\xb4\x1b\x97\ +\xfd\xfd\x7c\xe8\x44\x6d\x6d\x2d\x7c\x3e\x9f\x2a\x9c\x35\x9a\x60\ +\x53\x53\x53\xe8\xbf\x30\x00\x33\x65\x61\xe9\x92\x0a\x14\x7a\x73\ +\x10\x33\xe3\x32\x43\x2c\xac\x23\x65\xba\x28\x9d\x83\x35\x74\x86\ +\x2a\x03\x17\x9b\xb5\xd3\x10\xda\xf1\xbe\x80\xe8\x39\xde\x6a\x04\ +\x06\xfb\x88\xec\xc0\xea\xd5\xab\x15\xc0\x6c\xf7\x33\x26\xeb\x08\ +\x4d\x4f\x63\x60\xd0\x8f\x48\xf4\x11\x2a\xca\xb7\xa3\xa0\xb0\x86\ +\xf7\xa3\xd0\x6c\x27\x65\x12\x58\xbc\x68\x0a\x05\xf9\x79\xb0\x59\ +\x55\xa2\x4a\xdf\x4c\xd3\x14\x5a\xd7\xd0\x25\xd1\xdd\xde\x6a\xf8\ +\x07\xfa\x64\xcb\x0a\xc0\x30\x8c\x6c\x2a\xb2\x00\xa1\x10\x01\x86\ +\x90\xce\x4c\x43\xcb\x7c\x84\x89\x07\x3e\x24\x12\xeb\x61\x14\x5f\ +\xc4\xc3\xf1\x7c\xd4\xbd\xd3\x8f\xea\xaa\x02\xd0\x9e\xac\xac\xb6\ +\x4d\x89\xce\x06\x46\xc5\x99\xd6\x66\x63\xb0\xaf\x97\x0c\x74\xac\ +\x5a\xb5\x0a\xc5\xc5\xc5\xea\xa5\x14\xdf\x8e\xd3\xd4\xa2\xa2\x22\ +\x4c\x4b\x06\x17\x06\xa9\x76\x08\x1e\xf7\x1e\x4c\x4c\x7a\x91\x8c\ +\xd7\x72\xe0\x46\x71\xef\xb6\x13\x5b\xeb\x2e\xa1\x6a\x41\x2e\xbb\ +\xce\x28\xc6\x32\x18\x96\x65\x09\xed\xdc\xe5\xeb\xe2\x74\x5b\x83\ +\xd1\xdf\xdb\xad\x24\x5a\xb9\x72\xa5\x2a\x28\x25\x22\x45\x84\xc3\ +\x61\x94\x96\x96\x2a\x89\x2e\x0c\x91\x81\x16\x85\x6e\xef\x86\x98\ +\x28\xa6\xe1\x2b\xe0\xc8\xb9\x01\x33\xec\xc4\x96\x37\xcf\xa1\x62\ +\x41\x01\xb3\x9f\x51\x73\x92\x66\x10\x78\x09\x6d\x68\xec\x96\xe8\ +\x6c\x69\x30\x7a\xcf\x74\xa9\x04\x48\x80\x59\x89\x24\x03\x99\x9e\ +\xf2\xf2\x72\x84\x29\xd1\xa0\x3f\x00\x2b\x1d\x41\x7e\xde\x2e\x4c\ +\x4d\xe6\x72\xaa\xd7\xa0\x7c\x61\x1f\xee\xdd\x34\xb0\xb9\x6e\x0c\ +\x15\x15\x39\x2c\xac\x53\xba\x04\x42\x7c\x5f\x01\x04\x6e\xfc\x25\ +\x3a\x5b\x1b\x8d\xee\x53\x27\x15\xc0\x8a\x15\x2b\xb2\x0c\xa8\x21\ +\x62\xb1\x18\x0a\x0b\x7d\x88\x44\xc2\xf0\xfb\x87\x60\x69\x71\xa4\ +\xcd\x0f\x31\xf1\xb8\x1c\x7a\x7a\x19\xcd\xbc\x8d\x78\x2a\x83\xad\ +\x5b\xc8\x60\x7e\x3e\xa3\x99\x51\xec\x5d\x8c\x6f\x32\xc9\x39\x18\ +\xb9\x75\x57\x9c\x6c\x6b\x36\x4e\x1d\xef\x50\x00\x35\x35\x35\xca\ +\x83\x67\x53\x24\x63\x27\x81\xfc\xfe\x3f\x61\x22\x08\xaf\x63\x17\ +\x26\x1e\xb9\xd8\xe5\x46\x2c\xaa\x3e\x89\x9b\x63\xe5\x78\xeb\x6d\ +\x32\xa8\xf4\xd0\x37\x25\xcd\x53\x0f\xae\xdf\xbd\x2f\x8e\xb5\x1c\ +\x31\x8e\xb7\xb7\x2a\x80\x65\xcb\x96\x3d\x07\xa0\xd6\x05\x4d\x8b\ +\xc7\x12\xf0\x07\x02\x88\x47\x27\x50\x6c\x6c\xe7\x20\xbd\x82\xa4\ +\x1d\x41\x32\xec\x65\xb2\x82\x58\xf3\xda\x4d\x14\xf9\x72\x69\xec\ +\x0c\x03\x39\x9c\x2a\x45\xb7\xfe\x1d\x17\x1d\x4d\x8d\xc6\xd1\xe6\ +\x26\x05\xb0\x74\xe9\xd2\x2c\x80\xec\x7c\x76\xd8\x62\xb1\x38\x2e\ +\x5d\xbe\x8c\x50\x78\x1a\x1b\x37\xae\xc7\xa2\x85\x95\x94\x2d\xc2\ +\xe7\x0e\x76\x9b\xc3\x61\xe6\xa0\x71\x07\xc9\x01\x93\x69\xcc\x02\ +\xdc\x7e\xf8\x50\x74\x34\x36\x1b\x2d\x0d\xf5\xbc\xe9\x44\x75\x75\ +\x35\xe6\xf2\x5c\x98\x95\x48\x7e\x4b\x06\xd1\x68\x14\x81\x4b\x01\ +\x6e\x03\x0d\xb9\x1e\x0f\x72\xbd\x79\x6a\x6f\xd9\xec\x38\x91\x48\ +\xaa\x01\x63\x2c\x65\xd7\x34\xda\x54\xeb\xc2\x4e\x93\xc1\xdf\x8f\ +\x27\x44\x7b\x53\xb3\xd1\x70\xf8\x90\x02\x58\xb2\x64\x89\x02\x98\ +\xbd\x9e\x32\x88\x61\x78\x64\x18\x51\x7a\x11\x67\x4a\xaa\x16\x2f\ +\x42\xfd\x6f\x0d\x2c\xc4\xb5\xcc\x38\xdb\x96\x8d\x24\xbf\x2d\x2b\ +\x45\x1f\x92\xea\x3b\x1a\x89\x08\x6d\x3c\x14\x16\xc7\x9a\x5b\x8c\ +\x5f\x7e\xfe\x51\x49\x24\x19\x94\x94\x94\x3c\x03\x20\x07\x5c\x57\ +\x26\x8f\xf0\x44\x93\xeb\x5a\xc6\xb7\xa2\xb2\x12\x07\x0f\xd5\xc3\ +\x95\xc3\x68\xb2\x6b\xb9\x05\x66\x9a\x91\xcb\x5a\x83\x87\x2c\x53\ +\x49\xae\x8a\x47\xd1\x98\x38\xd1\xd6\x66\xfc\xf4\xfd\x01\x52\x4a\ +\x33\xcb\x15\x28\xe3\x2a\x96\xfa\xab\x8d\x2a\xa7\x92\xc0\xb2\xe8\ +\x95\x6b\xd7\x38\xd9\x31\x04\xa7\x82\xf4\xaa\x06\x87\x8f\x34\xf1\ +\x3c\x70\xcc\x00\x3c\x77\xd1\x0b\x9e\xdd\x49\x33\x21\xb4\x50\x22\ +\x21\xda\x1a\x5b\x8c\x6f\xbe\xde\x8f\x6a\xca\xb3\x69\xf3\x66\x32\ +\x98\xcb\x21\x8a\x20\x22\xe5\x88\x27\x94\xc6\x93\x8f\xc6\xe1\x1f\ +\xf2\xe3\xfe\xf8\x03\xee\xab\x5a\xec\xdd\xf7\x05\x6a\x96\x2f\x87\ +\x99\x34\x5f\x28\x3e\xf3\x53\xfe\x73\x60\x4a\x80\x69\x1e\xcc\x23\ +\xc3\x57\xbc\x57\x79\xa2\xd5\x6d\xab\x43\x59\x69\x09\x4f\x5c\xb9\ +\x82\xe5\xc8\xd3\x38\x7e\x3c\x39\x2e\x34\x1c\xae\xc7\x57\xfb\xf7\ +\x63\xc7\x8e\x77\xb1\x67\xcf\x67\xc8\xcb\xcf\xe5\x1c\xc4\xe5\x52\ +\x7f\x09\x40\x4a\x25\x01\x42\xe1\x50\x44\x9b\x9c\x0e\xdf\xce\xf3\ +\x7a\x7c\x3a\x6f\xf2\x88\x43\x84\x49\x90\xa7\xa5\x9e\x3d\xc7\x99\ +\x1a\x1e\x1e\xc3\xa3\xc3\x78\xfc\xe0\x01\x19\x6e\xe2\x84\x9a\x34\ +\xda\xa6\x3c\xff\xdb\xbc\x02\xf5\xb8\x9d\x88\x9b\x56\xf0\x3f\xfe\ +\x19\x0e\x29\x33\x91\x8f\x11\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ +\x42\x60\x82\ +\x00\x00\x15\x5b\ +\xff\ +\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ +\x01\x00\x00\xff\xdb\x00\x84\x00\x09\x06\x06\x10\x0f\x0f\x0f\x0f\ +\x0f\x0f\x0f\x0f\x0f\x10\x0f\x0e\x0f\x10\x0f\x0f\x10\x10\x0f\x0e\ +\x0d\x0f\x15\x10\x15\x14\x14\x10\x14\x15\x17\x1c\x26\x1e\x17\x19\ +\x24\x19\x15\x14\x1f\x2f\x20\x23\x27\x29\x2c\x2c\x2c\x15\x1e\x31\ +\x35\x30\x2a\x35\x26\x2b\x2c\x29\x01\x09\x0a\x0a\x0e\x0c\x0e\x18\ +\x0f\x0f\x1a\x29\x1e\x1c\x1c\x29\x29\x29\x35\x29\x29\x29\x2e\x2d\ +\x29\x34\x2d\x2c\x2f\x2a\x29\x29\x29\x2d\x35\x29\x29\x29\x29\x29\ +\x29\x2c\x35\x29\x29\x29\x2d\x31\x35\x35\x29\x36\x29\x29\x29\x32\ +\x29\x29\x2c\x29\x29\x2c\x29\x2c\x29\xff\xc0\x00\x11\x08\x00\xcc\ +\x00\xf7\x03\x01\x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1c\ +\x00\x00\x01\x05\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x01\x02\x03\x05\x06\x04\x07\x08\xff\xc4\x00\x51\x10\x00\ +\x01\x03\x02\x01\x03\x0e\x08\x0a\x08\x04\x07\x01\x00\x00\x00\x01\ +\x00\x02\x03\x04\x11\x12\x06\x21\x31\x05\x13\x23\x32\x41\x51\x53\ +\x71\x72\x73\x93\xb1\xb2\xd2\x07\x22\x33\x61\x74\x91\xa1\xc1\x42\ +\x52\x62\x81\x82\x92\xa2\xb3\xc2\xd1\x14\x15\x24\x34\x44\x83\xa3\ +\xc3\x43\x63\x75\x84\x54\x64\xa4\xb4\xd3\xe1\xf0\x16\xff\xc4\x00\ +\x1a\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x01\x02\x03\x04\x06\x05\xff\xc4\x00\x2a\x11\x01\x01\ +\x00\x02\x01\x02\x03\x08\x02\x03\x00\x00\x00\x00\x00\x00\x00\x01\ +\x02\x11\x03\x12\x31\x04\x32\x51\x05\x13\x21\x22\x35\x41\x71\xb1\ +\x14\xc1\x61\x72\xb2\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\ +\x00\x3f\x00\xb2\x86\x77\x96\xb4\x99\x25\xda\xb7\xfc\x59\x34\xd8\ +\x7c\xa4\xfd\x79\xfc\x24\xbd\x2c\x9d\xe4\xc8\x07\x88\xce\x4b\x7a\ +\x82\x7e\x15\xe8\xd4\x78\xf7\x46\xba\xfe\x12\x5e\x96\x4e\xf2\x35\ +\xe7\xf0\x92\xf4\xb2\x77\x91\x85\x18\x53\x50\xdd\xf5\x1a\xf3\xf8\ +\x49\x7a\x59\x3b\xc8\xd7\x9f\xc2\x4b\xd2\xc9\xde\x45\x91\x85\x35\ +\x0d\xd1\xaf\x3f\x84\x97\xa5\x93\xbc\x8d\x79\xfc\x24\xbd\x2c\x9d\ +\xe4\x61\x46\x14\xd4\x37\x46\xbc\xfe\x12\x5e\x96\x4e\xf2\x35\xe7\ +\xf0\x92\xf4\xb2\x77\x91\x85\x18\x53\x50\xea\xa3\x5e\x7f\x09\x2f\ +\x4b\x27\x79\x1a\xf3\xf8\x49\x7a\x59\x3b\xc8\xc2\x8c\x29\xa8\x6e\ +\x8d\x79\xfc\x24\xbd\x2c\x9d\xe4\x6b\xcf\xe1\x25\xe9\x64\xef\x23\ +\x0a\x30\xa6\xa1\xba\x35\xd7\xf0\x92\xf4\xb2\x77\x91\xaf\x3f\x84\ +\x97\xa5\x93\xbc\x8c\x28\xc2\x9a\x86\xe8\xd7\x9f\xc2\x4b\xd2\xc9\ +\xde\x46\xbc\xfe\x12\x5e\x96\x4e\xf2\x30\xa3\x0a\x6a\x1b\xa3\x5e\ +\x7f\x09\x2f\x4b\x27\x79\x1a\xf3\xf8\x49\x7a\x59\x3b\xc8\xc2\x8c\ +\x29\xa8\x75\x5f\x51\xaf\x3f\x84\x97\xa5\x93\xbc\x8d\x79\xfc\x24\ +\xbd\x2c\x9d\xe4\x61\x46\x14\xd4\x37\x7d\x46\xba\xfe\x12\x5e\x96\ +\x4e\xf2\x35\xe7\xf0\x92\xf4\xb2\x77\x91\x64\x61\x4d\x43\x74\x6b\ +\xcf\xe1\x25\xe9\x64\xef\x23\x5d\x7f\x09\x2f\x4b\x27\x79\x18\x51\ +\x85\x35\x0d\xd1\xaf\x3f\x84\x97\xa5\x93\xbc\x8d\x75\xfc\x24\xbd\ +\x2c\x9d\xe4\x61\x46\x14\xd4\x37\x46\xbc\xfe\x12\x5e\x96\x4e\xf2\ +\x35\xe7\xf0\x92\xf4\xb2\x77\x91\x85\x18\x53\xa6\x1b\xa4\xd7\x9f\ +\xc2\x4b\xd2\xc9\xde\x42\x52\x12\x26\xa1\xd5\x4b\x03\x7c\x46\x72\ +\x1b\xd9\x09\xf8\x52\xc2\x36\x36\x72\x1b\xd9\x0b\x18\xfc\xa6\xaa\ +\x1a\xdf\x8f\x19\xc7\x10\x79\xbc\x4d\xcc\x73\x66\x16\x23\x36\x75\ +\x2e\x5a\x6a\x63\x72\xec\xd9\x61\x46\x15\x8f\x6e\x56\x54\x8e\x00\ +\xf1\xc4\xf1\xd5\x22\x78\xcb\x1a\x80\x5a\x0c\x70\x1b\xb9\xad\xd1\ +\x23\x6d\x72\x05\xf6\xc7\x7d\x4e\xb8\xbe\xef\x26\xb7\x0a\x30\xaa\ +\x69\x75\x6a\x66\xc4\xf9\x70\x42\x70\x34\xba\xd7\x90\x12\x90\xea\ +\xe4\xdc\x1c\x3f\x5a\x4f\xc9\x5e\xb8\x9e\xef\x25\xd6\x14\x61\x54\ +\xbf\xaf\x66\xe0\xe1\xfa\xf2\x77\x51\xfa\xf6\x6e\x0e\x1f\xae\xfe\ +\xea\x75\x43\xdd\xe4\xba\xc2\x8c\x2b\x31\x57\x94\x15\x03\x5e\x2d\ +\x31\xc7\xad\xc5\x8c\x00\xdd\x70\x38\xd9\xe7\x39\x75\x8f\xc1\x1a\ +\x15\x73\x72\xd2\xa8\x69\xd6\x0f\x1c\x4f\x1d\x4f\x53\xae\x2f\xba\ +\xad\xc6\x14\x61\x58\xc6\xe5\xcc\xfb\xb1\x40\x78\xb5\xc6\xfb\xca\ +\x99\xb9\x7a\xfd\xda\x66\x1e\x29\x9c\x3a\xd8\x55\xeb\x89\xee\xf2\ +\x6b\x70\xa3\x0a\xcb\xb7\x2f\x5b\xf0\xa9\x9d\xf4\x65\x6b\xba\xda\ +\x15\xae\xa2\x65\x14\x75\x6e\x7b\x1b\x1c\x8c\x73\x1a\x1e\x71\xe0\ +\x20\x82\x6d\x98\x82\x52\x65\x2a\x5c\x2c\x59\xe1\x46\x15\x2e\x14\ +\x61\x5a\x65\x16\x14\x61\x52\xe1\x46\x14\x11\x61\x46\x15\x2e\x14\ +\x61\x41\x16\x14\x61\x52\xe1\x46\x14\x11\x59\x18\x54\xb8\x51\x85\ +\x04\x58\x51\x65\x2e\x14\x61\x41\x16\x14\x61\x52\xe1\x46\x04\x34\ +\x8b\x0a\x30\xa9\x70\x23\x02\x1a\x47\x85\x09\xf8\x50\xa2\x96\x99\ +\xbe\x2c\x7c\x96\x75\x05\xe6\xb3\xff\x00\x81\xcc\x5b\xd5\xad\xaf\ +\x4e\xa5\x1e\x2c\x7c\x96\x75\x05\xe6\x55\x43\xc8\xf3\x72\x0f\x51\ +\x8d\x73\xcd\xdb\x8b\xee\x8d\x35\xda\x59\xce\x45\xf7\x8d\x4e\x4d\ +\x93\xe0\xf3\x91\x7d\xe3\x57\x37\x66\x96\xac\xfe\xc9\x3f\x34\xee\ +\xca\x61\x39\xcf\x19\x4e\xa9\xfd\xd2\x7e\x65\xfd\x92\x98\x4a\x05\ +\x42\x44\xb7\x41\xc1\x5b\xa2\xa7\xd1\xc7\x66\x65\x42\xaf\xaa\xff\ +\x00\x89\xf4\x71\xd5\x32\xa1\x40\x24\x4a\x91\x00\xb4\xd9\x00\x36\ +\x79\xf9\x96\x7d\xe2\xcc\x95\xa9\xf0\x7c\x36\x6a\x8e\x66\x3e\xd9\ +\x5a\xc7\xbb\x19\xf9\x6b\x6b\x85\x18\x54\x96\x46\x15\xd9\xe6\x47\ +\x85\x18\x54\x98\x51\x85\x04\x76\x46\x15\x25\x92\x61\x40\xcc\x28\ +\xc2\xa4\xb2\x4b\x20\x66\x14\x61\x52\x61\x49\x64\x0c\xc2\x92\xca\ +\x5b\x22\xc8\x23\xb2\x2c\xa4\xb2\x2c\x82\x3b\x22\xca\x4b\x22\xc8\ +\x23\xb2\x13\xec\x95\x14\xb4\xcd\xf1\x23\xe4\xb3\xa8\x2f\x31\xaf\ +\x16\x74\x7e\x6f\xd2\x07\xaa\x46\xfe\x4b\xd4\x69\x9b\xe2\x47\xc8\ +\x67\x64\x2f\x31\xd5\x51\x69\x07\x3b\x56\x3f\xaa\x7f\x25\xcf\x37\ +\x5e\x3f\xbb\x95\x47\x2e\xe7\x2e\x2f\xbc\x6a\x90\xa8\xe6\xd1\xf4\ +\xa3\xed\xb5\x73\x76\x69\xa7\xfd\xd6\x7e\x66\x4e\xc1\x51\xa9\x25\ +\xfd\xda\x6e\x66\x4e\xc1\x51\x37\x40\x40\xa9\x52\x5d\x08\x38\xab\ +\x3f\x89\xf4\x71\xd5\x32\xa1\x57\xd5\x5f\xc4\x7a\x3b\x7f\xbc\xa8\ +\x06\x84\x0a\x91\x16\x7d\xae\x22\x95\xc0\xe8\x2d\x8d\xee\x07\x3d\ +\xb4\xd9\x26\x17\xf0\x52\x8e\x36\x10\x80\x2b\x5b\xe0\xe9\xbb\x35\ +\x4f\x35\x17\x6d\xcb\x24\x43\xb7\x9a\x38\xdc\x47\xe1\x57\x59\x29\ +\xab\xec\xa3\x7c\xae\x95\xb8\x84\x8c\x8d\xa3\x5b\x92\x2c\xc5\xae\ +\x71\x37\xc4\x46\xfa\xb3\xbb\x39\x4d\xc7\xa6\x61\x46\x15\x9a\x6f\ +\x84\x2a\x53\xf0\x26\xf9\x8d\x39\xfe\xe2\x95\xb9\x79\x48\x7e\x0c\ +\xe3\xe8\x46\x7a\x9e\x57\x5e\xa8\xe1\xd1\x5a\x0c\x28\xc2\xa9\x1b\ +\x96\xb4\x87\x76\x61\xfc\x97\x9e\xab\xa9\x46\x57\xd1\xf0\x8f\x1c\ +\x70\x54\x77\x13\x70\xe9\xbe\x8b\x6c\x28\xc2\xab\x06\x55\xd1\x70\ +\xe0\x71\xc7\x33\x7a\xd8\x9c\x32\x9e\x88\xff\x00\x15\x10\xe3\x25\ +\xbd\x61\x36\x9d\x35\x63\x85\x18\x57\x13\x72\x86\x8c\xff\x00\x17\ +\x4d\xf3\xcd\x18\xeb\x2a\x56\xea\xc5\x31\xd1\x53\x4e\x78\xa7\x8b\ +\xf3\x57\x66\xab\xa3\x0a\x30\xa6\x36\xb6\x23\xa2\x68\x8f\x14\x8c\ +\x3e\xf5\x2b\x5c\x0e\x82\x0f\x11\x05\x0d\x1b\x85\x18\x54\x81\x87\ +\x78\xfa\x92\xeb\x67\x78\xfa\x91\x11\x61\x4b\x85\x3f\x0a\x30\xa0\ +\x8f\x0a\x30\xa9\x30\xa3\x0a\x06\x61\x42\x93\x0a\x11\x45\x3b\x76\ +\x36\x72\x19\xd9\x0b\xcc\x35\x70\x5a\x67\x0d\xea\xaa\xc1\xfd\x59\ +\x3f\x25\xea\x54\xe3\x63\x67\x21\x9d\x90\xbc\xc3\x28\x85\xa7\x93\ +\xcd\x59\x54\x3e\xd4\xa5\x63\x37\x5c\x15\xca\x39\xf6\xa7\x8d\xbd\ +\xa0\xa4\x51\xd4\xed\x1d\xff\x00\xdb\xab\x9b\xab\x4e\xef\xdd\xe6\ +\xe6\xa4\xec\x95\xcf\x19\xcc\x38\x87\x52\xe8\x1e\x42\x5e\x6d\xfd\ +\x92\xb9\x60\x3e\x2b\x79\x2d\xea\x41\x2d\xd0\x91\x08\x38\xea\xff\ +\x00\xc7\xf4\x71\xfd\xe5\x42\xdd\x03\xe6\x57\xd5\x5a\x67\xf4\x76\ +\xff\x00\x79\x67\x66\xf2\x6e\xe4\x1e\xca\xb3\xe2\x25\xd7\x8b\x05\ +\x84\x8f\x60\xde\x12\x3d\xa0\x6e\xe8\xbd\x82\xed\xd4\xe8\xe7\x99\ +\xae\x73\x26\xc4\x31\x90\x3f\x6e\xa6\x8d\xd9\x9a\x2f\xe2\x48\xf0\ +\xed\x37\xce\xb2\x45\x82\xe7\x30\xd2\x77\x06\xfa\x9a\x9c\x67\x3c\ +\x43\xde\xbf\x53\x0f\x65\xe7\xc9\x9c\xe3\x99\xc9\x7d\x75\xbf\xee\ +\x31\xd7\xa6\xd9\xba\x99\x5d\xf0\x5b\x52\xee\x44\x94\x72\xf5\x38\ +\xa6\x54\xd2\xd7\x44\x03\xa5\x6d\x64\x6d\x2e\x6b\x03\xa4\xa7\x84\ +\x30\xb9\xda\x1b\x8b\x45\xca\xc9\x6b\x4d\xf8\xad\xf5\x05\x6d\x93\ +\x14\xec\x75\x4d\x8b\x18\x47\xe8\xd5\xae\xb3\x9a\xd2\x2e\x29\xa4\ +\x20\xd8\x8d\x20\xe7\x4f\x19\xec\x8e\x5f\x09\xc3\x9f\x3e\x5c\x93\ +\x29\x8c\xde\xba\x6c\xbf\xf5\x4c\x79\x26\x57\x5a\x59\x9f\xd2\x37\ +\x4b\x8f\x2a\x06\x3b\xb2\x54\x64\x4b\xba\xc8\xcf\x2a\x8e\x43\xd4\ +\xae\x98\x73\x0e\x20\x9c\xbf\x29\xb5\x09\x0e\xdd\x86\x98\xf1\xd2\ +\xca\xd4\xc2\xf1\xbb\x0d\x27\xda\x8f\xdc\xb4\x20\xa5\xbf\x9d\x06\ +\x77\x5e\x67\x03\x4f\xf4\x6a\x9c\xdf\x72\x70\x95\x9c\x07\xd5\xac\ +\x79\x5a\x02\x98\x61\x69\xd2\xd6\x9e\x36\x82\x82\x90\x16\xf0\x15\ +\x1f\x46\x7c\x5d\x6e\x41\x6b\x37\x62\xac\x1f\x3c\x4e\xeb\x2a\xe0\ +\xd1\x44\x74\xc5\x17\x46\xcf\xc9\x27\xea\xf8\xb8\x28\xfe\x66\x81\ +\xd4\x82\x94\xc7\x0e\xeb\x6a\x87\x1c\x50\xbb\xf0\x94\xdd\x6a\x9f\ +\x7e\x51\xc7\x4c\xd3\xd4\xc5\x79\xfa\xbe\x3f\x8b\x6e\x27\x3c\x75\ +\x14\x9f\xab\xe3\xf9\x63\xf9\xb2\xf7\x90\x52\x88\xe0\xdc\x98\x8e\ +\x3a\x57\x8e\xa0\x13\xda\xf8\xc6\x8a\xb0\xdf\xa1\x33\x3f\x18\x56\ +\xdf\xab\x59\xbf\x27\x48\xe3\xd7\x74\x87\x53\x1b\xf1\xe4\xfe\x99\ +\xeb\x62\x0a\xf6\xd5\x91\xa3\x54\x00\xfe\x7c\xec\xfe\xe2\x95\x9a\ +\xa1\x3f\xc1\xd5\x10\x7f\xde\x4d\xde\x2b\xa4\xea\x50\xe1\x1d\xf3\ +\xb6\x23\xf8\x13\x0e\xa3\x83\xf0\xc7\xcf\x1b\x4f\x51\x08\x68\xac\ +\xd5\x1a\xdf\x83\x5b\x7f\xf7\x4e\x77\x5b\x4a\xe5\xd5\x0c\xaa\xae\ +\xa7\x2d\x69\xa9\x37\x70\x24\x12\xf8\xde\xdd\x36\xdd\x8d\x4c\xed\ +\x41\x07\x81\x3c\x70\x9e\xfa\xe4\xd5\x0d\x43\x0d\x86\x67\x06\xc3\ +\x9a\x29\x4e\x66\x39\xa7\x33\x09\xdf\x2a\xed\x35\x1b\x2c\x88\xa8\ +\xaf\x95\xb2\x49\x58\x5c\x62\x73\x62\x30\x17\x32\x28\xcb\xaf\x88\ +\x97\x00\xd0\x0e\x1b\x61\xce\x7e\x64\x2d\x4d\x2c\x21\x91\xb1\x83\ +\x30\x6b\x18\xd1\xc4\xd6\x81\xee\x48\xba\xb8\x5f\x8a\x4a\x61\xb1\ +\xb3\x9b\x67\x64\x2f\x2f\xca\x71\x6a\x89\x7d\x32\x6f\x6b\x64\x3e\ +\xf5\xea\x94\xcd\xd8\xe3\xe4\x33\xb2\x17\x97\x65\x68\xb5\x54\xfe\ +\x96\x7d\xb0\x93\xef\x59\xc9\xbc\x3b\xaa\x54\x55\x3b\x47\x72\x4a\ +\x91\x47\x55\xb4\x7f\x21\xdd\x45\x73\x75\x6a\x23\xf2\x4f\xe4\x3b\ +\xa9\x72\x53\xed\x19\xc8\x67\x64\x2e\xba\x7f\x26\xee\x49\xea\x5c\ +\x54\x9e\x4e\x3e\x6e\x3e\xc8\x41\x30\x48\x26\x6d\xf0\xe2\x6e\x2f\ +\x8b\x88\x62\xdf\xd1\xa5\x0b\x8c\x17\xeb\xf7\xb7\x8b\xb4\x07\x36\ +\x6f\x17\x17\xc4\xbe\x9f\x94\x81\xd5\x5a\x66\xf4\x71\xfd\xe5\x9d\ +\x9b\xc9\xbb\x90\x7b\x2b\x45\x53\xb6\x9b\xd1\xc7\x5c\xab\x39\x37\ +\x93\x77\x20\xf6\x55\xc7\xbc\x15\x70\x53\xba\x59\x5b\x13\x0b\x1a\ +\xe9\x25\x0c\x06\x47\x06\x30\x17\x3c\x36\xee\x71\xd0\x05\xee\x4e\ +\xe0\x05\x75\xd5\xea\x63\xe9\xa5\x7c\x72\x3a\x37\x16\x92\xdc\x70\ +\xbf\x5c\x8d\xc5\xa6\xce\xc2\xeb\x0b\x8b\x95\x5e\xe1\xe3\x5c\x12\ +\x0b\x5c\x48\x23\x70\xde\xeb\xa2\x39\x9c\xe2\x71\x12\x6c\x33\x68\ +\x16\xb9\x24\xe8\xf3\xaf\xa7\xf0\xd3\x97\xf9\x92\xef\xe5\xdd\xfd\ +\x57\x1b\xae\x94\x8a\xe3\x25\xbf\x79\x77\xa2\x57\xff\x00\xdb\x3d\ +\x53\xab\x7c\x96\xfd\xe1\xfe\x6a\x2a\xf3\xff\x00\x4e\xef\xcd\x7b\ +\xbd\xbb\xf4\xee\x6f\xf5\x67\x8f\xcd\x1a\x76\xe8\x1c\x49\x52\x04\ +\x2f\x89\x7a\x0a\x95\x35\x28\x40\xa8\x49\x74\x5d\x03\x81\x45\xd2\ +\x5d\x2a\x02\xe9\x52\x21\x02\xdd\x2a\x6a\x54\x0a\x84\x88\x40\xab\ +\x97\x55\x33\xc1\x28\xf8\xcc\x2d\xfa\xde\x2f\xbd\x74\xdd\x45\x52\ +\xcc\x41\x8d\xf8\xd3\xd2\xb3\xeb\x54\x46\xdf\x7a\x0f\x4b\x73\x73\ +\x9e\x33\xd6\x84\xfc\x3a\x50\xba\xed\xe7\xd1\x29\x9b\xb1\xc7\xc8\ +\x67\x64\x2f\x2e\xcb\x31\x6a\xba\x8f\x4a\x8c\xfa\xe9\x99\xf9\xaf\ +\x55\xa6\x1b\x1c\x7c\xdb\x3b\x21\x79\x6e\x5d\x36\xd5\x95\x1c\xfd\ +\x31\xf5\xd3\xc3\xf9\xac\xe4\xe9\x8f\x75\x0a\x8e\xa7\x68\xfe\x43\ +\xfb\x25\x48\xa3\xa8\xda\x3f\x90\xfe\xc9\x58\x74\x69\xe9\x3c\x99\ +\xe4\xae\x2a\x33\xb1\x45\xcd\xc7\xd8\x0b\xb2\x83\x69\xf4\x57\x0d\ +\x11\xd8\xa2\xe6\xe3\xec\x04\x1d\x0a\xbd\xa7\xf6\x8b\x5f\x77\x16\ +\x10\x47\x07\x6c\x67\x77\xcd\x6f\x9f\x42\xef\x5c\x46\x29\x35\xfb\ +\xd8\xe0\xbd\xf4\xf8\xbe\x4e\xd8\xad\x8b\x4d\xf3\x68\x40\xfa\x9d\ +\xb4\xbe\x8e\x3a\xe5\x59\xd9\xbc\x9b\xb9\xb3\xd9\x5a\x2a\x8d\xb4\ +\xbe\x8e\x3a\xe4\x59\xd9\xbc\x93\xb9\xb3\xd9\x57\x1e\xf0\x56\x53\ +\x52\xba\x69\x99\x13\x0b\x03\xe4\x95\xac\x69\x7b\x83\x1a\x0b\x9e\ +\x1a\x09\x3b\x83\x3d\xc9\xdc\x00\xae\xaa\xad\x4c\x92\x9a\x57\xc5\ +\x2e\x02\xe6\xb8\xb2\xf1\xbc\x48\xc7\x16\x9b\x3a\xce\x1a\x45\xca\ +\xaf\x7b\x7c\x6b\x83\x62\x1c\x48\x39\xb4\xdd\x74\x47\x33\x9c\x4e\ +\x23\x7b\x68\xcc\x00\x17\x24\x9b\x00\x37\xd7\xd3\xf8\x69\xcb\xfc\ +\xc9\x77\xf2\xee\xfe\xab\x8d\xd7\x4a\x45\x6f\x92\xfe\x5e\x5f\x35\ +\x0d\x7f\xdc\x2a\x85\x6f\x93\x1e\x5a\x7f\x40\xaf\xfb\xa0\x17\xb7\ +\xdb\xbf\x4f\xe6\xfc\x7f\x71\x9e\x3f\x34\x69\x90\x90\xe9\xf9\xd2\ +\xaf\x8a\x7a\x0a\x80\x52\x22\xe8\x1d\x74\x59\x71\xd6\xd1\x19\x1c\ +\xc3\x71\x61\xa6\xe0\x3a\xfe\x3b\x1d\xa0\x82\x0e\xd7\x75\x73\xc5\ +\x40\x58\xe7\xf8\xae\x7b\x6c\x03\x4d\xd8\x1c\x5a\x18\xd6\xda\xf7\ +\x04\x67\x07\x36\x8e\x24\x16\x89\x55\x4b\x63\x94\x60\xbe\xbb\x60\ +\xd6\x89\x08\x76\x22\x46\x26\x67\x6d\x89\xcf\x6c\x59\x80\xbe\x9c\ +\xe7\x32\xb0\xa6\xc5\x81\x98\xf6\xd8\x5b\x8b\x45\xf1\x5b\x3e\x8f\ +\x3a\x09\x90\x92\xe8\xba\x05\x45\xd1\x74\x20\x5b\xa2\xe9\x10\x81\ +\xc8\x89\xb7\x9a\x95\xbb\xf5\x94\x7e\xca\x86\x3b\xdc\x9a\xa6\xd4\ +\xd6\xde\xae\x84\x7f\xcd\xb0\xfd\x58\xe4\x7f\xe1\x48\x95\xe9\x21\ +\xa9\x14\xb6\x42\xe9\x5c\xa1\xb4\xcd\xd8\xe3\xe6\xd9\xd9\x0b\xcb\ +\xbc\x20\x0b\x56\x54\x72\xe8\xcf\xf4\xe2\x0b\xd5\xa9\x86\xc7\x1f\ +\x36\xce\xc8\x5e\x5b\xe1\x18\x5a\xb2\x6e\x2a\x23\xd8\x1e\xe5\x32\ +\x6b\x1e\xec\xca\x8e\x61\xe2\x3f\x92\xee\xa2\x9e\x9b\x2e\xd5\xdc\ +\x97\x75\x2c\x3a\x34\x7a\x98\x76\x36\xf2\x47\x52\xe2\xa1\xf2\x51\ +\xf3\x6c\xec\x85\xd7\xa9\x27\x63\x67\x25\xbd\x41\x71\xd0\xf9\x28\ +\xf9\x0d\xea\x41\xd0\x84\x89\x6e\x83\x96\x7d\xb4\x9c\xc0\xeb\x91\ +\x67\xa5\xf2\x47\x9b\x3d\x95\xa0\x9f\x6d\x27\x31\xef\x7a\xcf\xcb\ +\xe4\x8f\x36\x7b\x2a\xce\xe2\xb2\x9a\x95\xd3\x4c\xc8\x58\x58\x1f\ +\x24\xad\x63\x4c\x8e\xc0\xc0\x5c\xf0\xd0\x49\xdc\x19\xee\x4e\xe0\ +\x05\x75\x55\xea\x5c\x94\xd2\xc9\x14\xa6\x32\xe6\xb8\xb0\xba\x27\ +\xeb\x91\x92\xd3\x67\x59\xdb\xa2\xe5\x57\xb9\xbe\x35\xef\x62\x1c\ +\x48\x23\x70\xdd\x4f\x1c\xae\x71\x38\x8d\xec\x33\x68\x00\x5c\x92\ +\x6d\x6f\x3a\xfa\x7f\x0f\x39\x7f\x99\x2e\xfe\x5f\x8f\xea\xb8\xdd\ +\x69\x2a\xb7\xc9\x8f\x2b\x51\xfe\x9f\x5d\xd8\x6a\xa7\x57\x19\x31\ +\xe5\x2a\x7f\xd3\xeb\x3f\xb6\xbd\x7e\xdd\xfa\x7f\x2f\xe2\x7e\xe2\ +\x71\xf9\xa3\x4a\x74\x94\x5d\x23\x8e\x73\xc6\x51\x75\xf1\x8e\xe5\ +\x42\x4b\xa5\x40\x25\x48\x8b\xa0\x5b\xa5\xba\x6a\x10\x39\x09\x11\ +\x74\x0a\x84\x5d\x17\x40\xb7\x45\xd2\x21\x03\x97\x5e\xa0\xb6\xf5\ +\xf4\x43\x7a\x59\xdd\xea\xa4\x9f\xf3\x5c\x4a\xcf\x25\x1b\x7d\x52\ +\xa6\xf9\x31\x55\xbf\xfa\x6d\x67\xe3\x56\x25\xec\xf4\x4c\x28\x52\ +\xe1\x42\xde\xdc\xe1\x29\x5b\xb1\xc7\xcd\xc7\xd9\x0b\xcb\xfc\x26\ +\x36\xd5\x72\xf3\x34\x67\xfa\xae\x1e\xe5\xea\x94\xa3\x63\x8f\x9b\ +\x8f\xb2\x17\x97\xf8\x53\x6d\xaa\x9d\xe7\xa5\xa5\x3e\xa9\xe5\xfc\ +\x96\x6b\x51\x8f\x48\xfd\x07\x88\xf5\x25\x48\x56\x5b\x5f\x6a\x31\ +\xd8\xa3\xe4\x33\xb2\x17\x2d\x17\x93\x67\x24\x29\xf5\x14\xec\x31\ +\xf3\x6c\xec\x85\xcf\x45\xe4\xdb\xf3\xf5\x94\x1d\x17\x42\x44\x20\ +\xe6\x9b\x6e\xfe\x63\xf1\x3d\x67\xde\x2f\x19\xe6\xff\x00\x0a\xd0\ +\x4f\xb7\x7f\x30\x7a\xdc\xa8\xa3\xda\xb7\x92\x3a\x90\x54\x32\x9d\ +\xee\x26\xcd\x36\xb9\xce\x73\x0d\x3e\x75\x65\x43\x93\x15\x72\xb1\ +\xd2\x43\x18\x91\x98\xb0\x5c\x10\x33\x80\x09\xd2\x47\xc6\x5d\x54\ +\xf4\xaf\x93\x3d\x8e\x1c\xfb\x4d\x6d\xcf\x36\x24\x68\x27\xc5\xd1\ +\xbc\x55\x9d\x2d\x54\x90\x34\x35\x92\x4d\x1b\x45\xcd\x9d\x15\xc5\ +\xc9\xb9\xce\x1b\xbe\x77\xd7\xb6\xf8\xee\x6e\xae\xac\x6e\xbf\x0c\ +\xf4\xc5\x14\xda\x85\x58\xcd\xb5\x2c\xbf\x33\x4b\xba\xae\xa6\xd4\ +\x39\xdd\x0c\xb2\x89\x23\x7b\x35\xda\x69\xe0\x05\xf6\x63\x5a\xe7\ +\xe1\x20\xb8\xba\xd9\xbc\x53\xe7\xd0\xb4\x71\x65\x44\xe3\x44\xf0\ +\xbb\xcc\x6e\xd3\xda\x3d\x4b\xb1\x99\x55\x3f\xc2\x8a\x37\x8f\x33\ +\x81\xbf\xad\xa3\xad\x39\xfc\x7f\x3f\x3f\x15\xe2\xe4\xcb\x78\xdf\ +\xf1\x3f\x3f\x62\x63\x25\xdc\x73\xb6\x56\xbb\x3b\x48\x77\x24\x83\ +\xd4\x9c\x54\xae\xd5\xca\x77\xf9\x5a\x06\x13\xbf\xad\xc6\xe3\xf6\ +\x5c\x4a\x51\x57\xa9\xa7\x4c\x52\xc3\xc9\x7c\xf1\x01\xd4\x17\x89\ +\xa4\x28\x5d\x6c\x82\x81\xfe\x4e\xb2\x66\x1d\xec\x71\x4b\xda\xb9\ +\x53\x7e\xa1\x69\xda\x57\x46\x79\xd8\x4f\x5b\x48\x41\x5f\x74\x5d\ +\x77\xff\x00\xf9\xca\x8f\x81\x25\x24\xbc\x52\x3a\x33\xea\x20\xa8\ +\xdf\xa8\x35\x83\xf8\x52\xef\x3c\x52\x46\xf1\xed\x2d\x41\xc8\x95\ +\x2c\x94\xd3\x33\x6f\x4f\x50\xde\x38\x9c\xee\xc5\xd7\x3b\xaa\xd8\ +\x36\xc7\x0f\x2c\x3a\x3e\xd0\x08\x27\x45\xd4\x71\xce\xd7\x6d\x5c\ +\xd7\x72\x5c\x1d\xd4\xa4\xb2\x01\x2a\x44\x20\x5b\xa1\x22\x2e\x81\ +\xca\xe7\x22\x19\x7d\x51\x6f\xc9\xa3\xaa\x3e\xb9\xa9\x87\xe6\xa9\ +\x6e\xb4\x3e\x0f\x59\x7a\xe9\x8f\xc5\xa2\x03\xeb\xd4\x0f\xfc\x6a\ +\xc4\xaf\x40\xc2\x85\x21\x08\x5a\x60\xda\x56\xec\x71\xf3\x71\xf6\ +\x42\xf3\x1f\x0b\x0d\xb5\x4f\x1d\x14\x47\xd5\x3c\xeb\xd4\xa9\x06\ +\xc7\x1f\x37\x1f\x64\x2f\x31\xf0\xbc\xdd\x9d\xbe\x7a\x13\xec\x96\ +\x53\xef\x52\xb5\x18\x62\x84\x14\x2c\xb4\xb8\xd4\x43\xb0\xc7\xcd\ +\xb3\xb2\x14\x34\x9b\x41\xc6\xfe\xd9\x52\x6a\x19\xd8\x63\xe4\x37\ +\xb2\x14\x54\xbb\x5f\xa5\x27\xde\x39\x04\xe1\x2a\x6a\x5b\xa0\xe7\ +\x97\x6e\xee\x67\xf1\x15\x45\x16\xd5\xbc\x96\xf5\x2b\xc9\x8f\x8e\ +\x79\x93\xda\x2a\x8a\x2d\xab\x79\x2d\xea\x40\x3a\x30\x73\xe1\x17\ +\xdf\xb0\xba\x7b\x1c\xe6\xed\x5e\xf6\xf1\x3d\xe0\x7a\xae\x82\x91\ +\x04\xbf\xa6\x4b\xc2\x17\x0d\xe7\x86\x3c\x7b\x42\xd4\xe4\x6e\x48\ +\x1d\x52\x8a\x79\x31\xc1\x13\xa2\x91\xac\x1f\xb3\x93\x8a\xec\x0e\ +\xb9\x73\x5e\x08\xf5\x2c\x89\x5e\xab\xe0\x61\xbf\xb3\xd6\x7a\x4c\ +\x63\xfa\x2d\xfc\xd5\x89\x55\xb3\xf8\x2d\xaa\x6e\xd1\xf0\xbf\x93\ +\x3c\xec\x3e\xa7\xb0\x8f\x6a\xaf\x9f\x21\x35\x42\x3f\xf0\x65\x77\ +\x9d\x8e\xa5\x94\x7a\x9a\xe0\xef\x62\xf6\x5b\x22\xc9\xa4\xdb\xc1\ +\xea\xb5\x0e\xa9\x9e\x56\x09\x00\xff\x00\x36\x96\xa1\x8d\xfa\xd6\ +\x70\x55\xe2\x20\x0d\x83\x22\xbf\xf9\x52\xb5\xae\xf5\x78\xa5\x7d\ +\x12\x02\x8a\x7a\x46\x48\x2d\x23\x19\x20\xde\x91\xad\x78\xf6\xa6\ +\x8d\xbc\x08\x3e\x46\xff\x00\xc4\xb7\x89\xc6\x41\xd6\xe5\x2b\x35\ +\x6a\x66\x68\xa8\x7b\x79\xc6\x06\xfb\x9a\xbd\x96\x6c\x8e\xa0\x7e\ +\x9a\x38\x01\xdf\x8d\x82\x13\xeb\x8e\xc5\x70\x4d\xe0\xea\x89\xdb\ +\x5d\x7e\x2e\x44\xef\x70\xf5\x49\x88\x26\x97\x6f\x38\xa6\xca\xfa\ +\xc1\xb5\x9a\x39\x38\x9c\xe1\xef\x72\xed\x66\x5c\xd4\x8d\xbc\x2c\ +\x78\xfa\x0e\xed\x35\xab\x4f\x55\xe0\xa2\x17\x6d\x6a\x1d\xfc\xe8\ +\x21\x9b\xb3\x81\x55\xcf\xe0\x9a\x61\xe4\xe5\xa6\x77\x4f\x4c\x7e\ +\xc6\x20\x9a\x37\x15\xae\xca\xaa\x69\x3c\xbe\xa7\x44\xef\x39\x84\ +\x13\xf6\x09\x48\x35\x43\x51\xdd\xb6\xa7\x74\x07\x7d\x92\x4b\x05\ +\xbd\x60\x27\x4f\xe0\xe2\xbd\x9a\x23\x73\xf9\xaa\x88\x5f\xf7\xd8\ +\x4a\xae\x9b\x25\xeb\xa3\xdb\x41\x52\x38\xe9\x5f\x28\xfa\xd1\x1b\ +\x28\x2d\xa3\xa4\xd4\xb9\x3c\x9d\x5d\x4b\x3f\x98\xc9\x87\xda\xba\ +\x94\xe4\xcc\x4e\xf2\x7a\xa4\xce\x29\xa0\xb7\x67\x0a\xc8\xd4\x53\ +\x90\x6d\x23\x61\xbe\xf4\xb8\xa2\x77\xa9\xed\x29\xac\xa7\x23\x3b\ +\x62\x70\xf3\xc3\x23\x40\xfb\x2e\x08\xad\x79\xc8\xfa\x93\xe4\xe7\ +\xa2\x9b\x8a\x47\x46\x4f\xaf\x12\x86\x4c\x95\xd5\x06\xff\x00\x0b\ +\x8c\x6f\xc5\x2b\x1f\xd7\x85\x66\x45\x44\x8d\xf8\x75\x2c\xe3\x0f\ +\x78\xf5\xb9\xae\x0a\x78\x72\x82\x76\x1f\x16\xac\x5f\x79\xd6\x07\ +\xd8\x5a\x82\xce\x6d\x4f\xa8\x67\x94\xa4\xa9\x67\xf2\xb1\x8f\xb0\ +\x4a\xb0\xc8\xac\xa0\xa7\xa5\xac\x9d\xb5\x0e\x92\x27\x4b\x15\x14\ +\x31\xe2\x86\x51\xe3\xba\x69\x85\x8f\x8b\x71\x72\xe6\xe7\xd1\xea\ +\x5c\x10\x65\xbd\x7b\x06\x69\x43\x80\xf9\x6f\x68\xf6\xe2\x5d\x79\ +\x21\xa9\x52\xea\xd5\x7f\xeb\x3a\xa0\x45\x3d\x31\x89\x8c\x00\xe6\ +\x9e\x58\xae\xe6\x01\x60\x2e\x1a\x5c\x5c\x4d\xbe\x10\x1b\xa6\xd6\ +\x25\x7a\xc6\x14\x27\xd9\x0a\xb2\x6d\x20\xd8\xe3\xe6\xe3\xec\x85\ +\xe6\x9e\x18\x5b\xb2\xc4\x77\xe8\xa7\xf6\x3f\xff\x00\x6b\xd3\xe9\ +\x1b\xb1\x45\xcd\xc7\xd8\x0a\xa7\x29\x32\x36\x9b\x54\x70\xeb\xe6\ +\x56\xb9\x8c\x7c\x6d\x74\x4f\x0d\x38\x1f\x6c\x40\x87\x02\x0e\x81\ +\xb8\x95\x5e\x0c\x4f\xb4\xd8\x79\xce\xf7\x1a\xd2\xea\x2f\x83\xda\ +\xfa\xab\x3b\x5a\xfd\x1a\x33\x9f\x5c\xa9\xbb\x09\x1f\x26\x3d\xb9\ +\xf9\xc3\x47\x9d\x7a\xc6\xa2\x64\x7d\x1d\x15\x8c\x10\x34\x49\x6b\ +\x6b\xcf\xd9\x27\x3f\x4d\xd9\xdb\xc4\xdb\x0f\x32\xb8\xc2\xa6\x97\ +\x6c\x26\xa7\x78\x2b\x86\x28\xda\xc7\x55\x54\xbc\x80\x05\xd8\xd8\ +\x23\x6e\x8d\xc0\x58\xe3\xed\x51\x4d\xe0\xa1\x80\x6c\x35\x72\x37\ +\x3b\x8d\xa6\x89\x92\xe7\x2e\x24\xe7\x61\x66\xfa\xf4\x0c\x28\xc2\ +\x88\xf2\xda\x8f\x06\x75\xad\xda\x49\x4d\x2f\xd2\x92\x27\x1f\x98\ +\xb4\x8f\xb4\xaa\xea\x32\x43\x54\x23\xdb\x51\xca\xe1\xbf\x11\x8e\ +\x61\xea\x63\x8b\xbd\x8b\xd9\x70\xa5\xc2\x9a\x36\xf9\xf6\xb2\x99\ +\xf1\xca\x5b\x24\x72\xc6\x75\x97\x66\x96\x39\x22\x27\xc6\xde\x78\ +\x17\x59\xf8\xb6\xad\xe4\xb7\xa9\x7a\xbf\x85\x91\xb3\xd2\x7a\x3d\ +\x4f\xde\x46\xbc\xa2\x1d\xab\x79\x2d\xea\x51\xa3\x8a\x42\x6d\x9f\ +\x73\xa9\x5d\xe4\xee\x47\xd5\xea\x81\xfd\x9e\x3d\x8a\xf6\x75\x44\ +\x97\x64\x0d\x3b\xa3\x15\xae\xe3\xe6\x68\x27\x7e\xcb\xd5\xf2\x67\ +\xc1\x95\x25\x1e\x19\x24\x1f\xa5\x54\x0b\x11\x24\xad\x1a\xdc\x67\ +\xfc\xb8\xb3\x81\xc6\x6e\x77\x88\x41\xe6\xd9\x35\xe0\xee\xb2\xbb\ +\x0b\xcb\x7f\x46\xa7\x39\xf5\xe9\x9a\x6e\xf1\xbf\x1c\x79\x8b\xf8\ +\xcd\x9b\xe7\x2b\xd7\x72\x6b\x25\xe0\xd4\xe8\x4c\x50\x63\x38\x9d\ +\x8e\x47\xc8\x6e\xf9\x1f\x84\x36\xe6\xd6\x00\x58\x01\x60\x07\xbd\ +\x5d\xe1\x49\x85\x56\x51\xd9\x16\x52\xe1\x49\x85\x54\x47\x64\x59\ +\x4b\x85\x26\x14\x11\xd9\x16\x52\xe1\x46\x14\x11\x59\x16\x52\x61\ +\x4b\x85\x04\x58\x51\x85\x49\x85\x18\x50\x46\xe6\xdc\x58\xe7\x1b\ +\xc7\x38\xf5\x2a\xea\x9c\x9a\xa3\x97\x3c\x94\x74\xce\x3b\xe6\x08\ +\xc3\xbe\xb0\x17\x56\xd8\x51\x85\x06\x66\x6f\x07\xf4\x0e\xd1\x0b\ +\xe3\xe6\xe7\x9d\xbe\xc2\xe2\x3d\x8a\xbe\xa3\xc1\x7d\x3b\xb6\x95\ +\x15\x2d\xf3\x3f\x59\x95\xbd\x80\x7d\xab\x6b\x85\x18\x51\x5e\x63\ +\x5b\xe0\x73\x18\x2d\x6d\x4c\x20\x3a\xc0\xbb\xf4\x5c\x12\x35\xb7\ +\x17\x20\x87\x90\x4d\xaf\xa4\x59\x7a\x0e\xa6\xea\x64\x54\xd0\xc7\ +\x04\x2d\xc1\x14\x4d\x0d\x63\x74\x9b\x6e\x92\x77\x49\x37\x24\xee\ +\x92\x4a\xee\xc2\x8c\x28\x22\xb2\x14\xb8\x50\x88\x6d\x18\xd8\xa2\ +\xe6\xe3\xec\x05\x29\xcd\xa7\xcc\x3d\x79\x82\x6d\x1b\x76\x28\xb9\ +\xb8\xfb\x01\x53\xe5\x9c\x45\xd4\xad\x02\x57\x45\x7a\xba\x16\xe2\ +\x61\x00\x8c\x55\x51\xb2\xf9\xfe\x2e\x2c\x7c\x6c\x17\xcd\x75\x71\ +\x93\x2c\xa4\xbf\x0d\xaa\xee\xc8\xb2\x6d\x3d\x4b\x25\x18\xa3\x7b\ +\x5e\xd3\x7c\xed\x37\x1a\x54\xb8\x56\x25\x96\x6e\x24\xb2\xcd\xc3\ +\x2c\x8b\x27\xe1\x46\x15\x54\xcb\x22\xc9\xf8\x51\x85\x06\x37\x2e\ +\xf2\x3a\x7a\xf7\x42\xf8\x1f\x13\x4c\x51\xcc\xc2\xd9\x4b\xda\x1d\ +\x8c\xb0\x82\x1c\xd6\xba\xdb\x5d\xed\xd5\x55\x92\xde\x07\xe0\x80\ +\x31\xf5\xce\x15\x52\x00\x36\x26\xdc\x52\xb4\x81\xba\x0e\x79\x7e\ +\x7b\x0f\x92\xbd\x1f\x0a\x30\xa2\xa2\x8e\x20\xd0\x1a\xd0\x1a\xd6\ +\x80\x1a\xd6\x80\x1a\xd0\x34\x00\x06\x81\xe6\x4e\xb2\x7e\x14\x61\ +\x44\x32\xc8\xb2\x7e\x14\x61\x40\xcb\x22\xc9\xf8\x51\x85\x03\x2c\ +\x8b\x27\xe1\x46\x14\x0c\xb2\x2c\x9f\x85\x18\x50\x32\xc8\xb2\x7e\ +\x14\x61\x40\xcb\x22\xc9\xf8\x51\x85\x03\x2c\x8b\x27\xe1\x46\x14\ +\x0c\xb2\x2c\x9f\x85\x18\x50\x32\xc8\xb2\x7e\x14\x61\x40\xcb\x24\ +\x52\x61\x42\x94\x47\x47\xe4\xa2\xe6\xe3\xec\x85\x0e\xa9\xea\x4c\ +\x35\x4c\x11\xce\xc1\x23\x03\xda\xf0\xd2\x5c\xd1\x88\x5e\xdb\x52\ +\x2e\x33\x91\x6d\x06\xea\x6a\x3f\x25\x17\x37\x1f\x64\x29\x92\xcd\ +\xb5\x32\xb8\xdd\xcf\x85\x54\x53\xe4\xad\x2c\x73\x36\x78\xd8\xf6\ +\x3d\x8d\xc2\xd6\xb6\x69\x5b\x10\x17\x27\x68\x1d\x63\xa7\x41\xcd\ +\xe6\x56\xe8\x42\x49\x27\x63\x2c\xf2\xcb\xcd\x77\xa0\x84\x21\x56\ +\x42\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\ +\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\ +\x84\x02\x10\x84\x02\x10\x84\x1f\xff\xd9\ +\x00\x00\x15\x5b\ +\xff\ +\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ +\x01\x00\x00\xff\xdb\x00\x84\x00\x09\x06\x06\x10\x0f\x0f\x0f\x0f\ +\x0f\x0f\x0f\x0f\x0f\x10\x0f\x0e\x0f\x10\x0f\x0f\x10\x10\x0f\x0e\ +\x0d\x0f\x15\x10\x15\x14\x14\x10\x14\x15\x17\x1c\x26\x1e\x17\x19\ +\x24\x19\x15\x14\x1f\x2f\x20\x23\x27\x29\x2c\x2c\x2c\x15\x1e\x31\ +\x35\x30\x2a\x35\x26\x2b\x2c\x29\x01\x09\x0a\x0a\x0e\x0c\x0e\x18\ +\x0f\x0f\x1a\x29\x1e\x1c\x1c\x29\x29\x29\x35\x29\x29\x29\x2e\x2d\ +\x29\x34\x2d\x2c\x2f\x2a\x29\x29\x29\x2d\x35\x29\x29\x29\x29\x29\ +\x29\x2c\x35\x29\x29\x29\x2d\x31\x35\x35\x29\x36\x29\x29\x29\x32\ +\x29\x29\x2c\x29\x29\x2c\x29\x2c\x29\xff\xc0\x00\x11\x08\x00\xcc\ +\x00\xf7\x03\x01\x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1c\ +\x00\x00\x01\x05\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x01\x02\x03\x05\x06\x04\x07\x08\xff\xc4\x00\x51\x10\x00\ +\x01\x03\x02\x01\x03\x0e\x08\x0a\x08\x04\x07\x01\x00\x00\x00\x01\ +\x00\x02\x03\x04\x11\x12\x06\x21\x31\x05\x13\x23\x32\x41\x51\x53\ +\x71\x72\x73\x93\xb1\xb2\xd2\x07\x22\x33\x61\x74\x91\xa1\xc1\x42\ +\x52\x62\x81\x82\x92\xa2\xb3\xc2\xd1\x14\x15\x24\x34\x44\x83\xa3\ +\xc3\x43\x63\x75\x84\x54\x64\xa4\xb4\xd3\xe1\xf0\x16\xff\xc4\x00\ +\x1a\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x01\x02\x03\x04\x06\x05\xff\xc4\x00\x2a\x11\x01\x01\ +\x00\x02\x01\x02\x03\x08\x02\x03\x00\x00\x00\x00\x00\x00\x00\x01\ +\x02\x11\x03\x12\x31\x04\x32\x51\x05\x13\x21\x22\x35\x41\x71\xb1\ +\x14\xc1\x61\x72\xb2\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\ +\x00\x3f\x00\xb2\x86\x77\x96\xb4\x99\x25\xda\xb7\xfc\x59\x34\xd8\ +\x7c\xa4\xfd\x79\xfc\x24\xbd\x2c\x9d\xe4\xc8\x07\x88\xce\x4b\x7a\ +\x82\x7e\x15\xe8\xd4\x78\xf7\x46\xba\xfe\x12\x5e\x96\x4e\xf2\x35\ +\xe7\xf0\x92\xf4\xb2\x77\x91\x85\x18\x53\x50\xdd\xf5\x1a\xf3\xf8\ +\x49\x7a\x59\x3b\xc8\xd7\x9f\xc2\x4b\xd2\xc9\xde\x45\x91\x85\x35\ +\x0d\xd1\xaf\x3f\x84\x97\xa5\x93\xbc\x8d\x79\xfc\x24\xbd\x2c\x9d\ +\xe4\x61\x46\x14\xd4\x37\x46\xbc\xfe\x12\x5e\x96\x4e\xf2\x35\xe7\ +\xf0\x92\xf4\xb2\x77\x91\x85\x18\x53\x50\xea\xa3\x5e\x7f\x09\x2f\ +\x4b\x27\x79\x1a\xf3\xf8\x49\x7a\x59\x3b\xc8\xc2\x8c\x29\xa8\x6e\ +\x8d\x79\xfc\x24\xbd\x2c\x9d\xe4\x6b\xcf\xe1\x25\xe9\x64\xef\x23\ +\x0a\x30\xa6\xa1\xba\x35\xd7\xf0\x92\xf4\xb2\x77\x91\xaf\x3f\x84\ +\x97\xa5\x93\xbc\x8c\x28\xc2\x9a\x86\xe8\xd7\x9f\xc2\x4b\xd2\xc9\ +\xde\x46\xbc\xfe\x12\x5e\x96\x4e\xf2\x30\xa3\x0a\x6a\x1b\xa3\x5e\ +\x7f\x09\x2f\x4b\x27\x79\x1a\xf3\xf8\x49\x7a\x59\x3b\xc8\xc2\x8c\ +\x29\xa8\x75\x5f\x51\xaf\x3f\x84\x97\xa5\x93\xbc\x8d\x79\xfc\x24\ +\xbd\x2c\x9d\xe4\x61\x46\x14\xd4\x37\x7d\x46\xba\xfe\x12\x5e\x96\ +\x4e\xf2\x35\xe7\xf0\x92\xf4\xb2\x77\x91\x64\x61\x4d\x43\x74\x6b\ +\xcf\xe1\x25\xe9\x64\xef\x23\x5d\x7f\x09\x2f\x4b\x27\x79\x18\x51\ +\x85\x35\x0d\xd1\xaf\x3f\x84\x97\xa5\x93\xbc\x8d\x75\xfc\x24\xbd\ +\x2c\x9d\xe4\x61\x46\x14\xd4\x37\x46\xbc\xfe\x12\x5e\x96\x4e\xf2\ +\x35\xe7\xf0\x92\xf4\xb2\x77\x91\x85\x18\x53\xa6\x1b\xa4\xd7\x9f\ +\xc2\x4b\xd2\xc9\xde\x42\x52\x12\x26\xa1\xd5\x4b\x03\x7c\x46\x72\ +\x1b\xd9\x09\xf8\x52\xc2\x36\x36\x72\x1b\xd9\x0b\x18\xfc\xa6\xaa\ +\x1a\xdf\x8f\x19\xc7\x10\x79\xbc\x4d\xcc\x73\x66\x16\x23\x36\x75\ +\x2e\x5a\x6a\x63\x72\xec\xd9\x61\x46\x15\x8f\x6e\x56\x54\x8e\x00\ +\xf1\xc4\xf1\xd5\x22\x78\xcb\x1a\x80\x5a\x0c\x70\x1b\xb9\xad\xd1\ +\x23\x6d\x72\x05\xf6\xc7\x7d\x4e\xb8\xbe\xef\x26\xb7\x0a\x30\xaa\ +\x69\x75\x6a\x66\xc4\xf9\x70\x42\x70\x34\xba\xd7\x90\x12\x90\xea\ +\xe4\xdc\x1c\x3f\x5a\x4f\xc9\x5e\xb8\x9e\xef\x25\xd6\x14\x61\x54\ +\xbf\xaf\x66\xe0\xe1\xfa\xf2\x77\x51\xfa\xf6\x6e\x0e\x1f\xae\xfe\ +\xea\x75\x43\xdd\xe4\xba\xc2\x8c\x2b\x31\x57\x94\x15\x03\x5e\x2d\ +\x31\xc7\xad\xc5\x8c\x00\xdd\x70\x38\xd9\xe7\x39\x75\x8f\xc1\x1a\ +\x15\x73\x72\xd2\xa8\x69\xd6\x0f\x1c\x4f\x1d\x4f\x53\xae\x2f\xba\ +\xad\xc6\x14\x61\x58\xc6\xe5\xcc\xfb\xb1\x40\x78\xb5\xc6\xfb\xca\ +\x99\xb9\x7a\xfd\xda\x66\x1e\x29\x9c\x3a\xd8\x55\xeb\x89\xee\xf2\ +\x6b\x70\xa3\x0a\xcb\xb7\x2f\x5b\xf0\xa9\x9d\xf4\x65\x6b\xba\xda\ +\x15\xae\xa2\x65\x14\x75\x6e\x7b\x1b\x1c\x8c\x73\x1a\x1e\x71\xe0\ +\x20\x82\x6d\x98\x82\x52\x65\x2a\x5c\x2c\x59\xe1\x46\x15\x2e\x14\ +\x61\x5a\x65\x16\x14\x61\x52\xe1\x46\x14\x11\x61\x46\x15\x2e\x14\ +\x61\x41\x16\x14\x61\x52\xe1\x46\x14\x11\x59\x18\x54\xb8\x51\x85\ +\x04\x58\x51\x65\x2e\x14\x61\x41\x16\x14\x61\x52\xe1\x46\x04\x34\ +\x8b\x0a\x30\xa9\x70\x23\x02\x1a\x47\x85\x09\xf8\x50\xa2\x96\x99\ +\xbe\x2c\x7c\x96\x75\x05\xe6\xb3\xff\x00\x81\xcc\x5b\xd5\xad\xaf\ +\x4e\xa5\x1e\x2c\x7c\x96\x75\x05\xe6\x55\x43\xc8\xf3\x72\x0f\x51\ +\x8d\x73\xcd\xdb\x8b\xee\x8d\x35\xda\x59\xce\x45\xf7\x8d\x4e\x4d\ +\x93\xe0\xf3\x91\x7d\xe3\x57\x37\x66\x96\xac\xfe\xc9\x3f\x34\xee\ +\xca\x61\x39\xcf\x19\x4e\xa9\xfd\xd2\x7e\x65\xfd\x92\x98\x4a\x05\ +\x42\x44\xb7\x41\xc1\x5b\xa2\xa7\xd1\xc7\x66\x65\x42\xaf\xaa\xff\ +\x00\x89\xf4\x71\xd5\x32\xa1\x40\x24\x4a\x91\x00\xb4\xd9\x00\x36\ +\x79\xf9\x96\x7d\xe2\xcc\x95\xa9\xf0\x7c\x36\x6a\x8e\x66\x3e\xd9\ +\x5a\xc7\xbb\x19\xf9\x6b\x6b\x85\x18\x54\x96\x46\x15\xd9\xe6\x47\ +\x85\x18\x54\x98\x51\x85\x04\x76\x46\x15\x25\x92\x61\x40\xcc\x28\ +\xc2\xa4\xb2\x4b\x20\x66\x14\x61\x52\x61\x49\x64\x0c\xc2\x92\xca\ +\x5b\x22\xc8\x23\xb2\x2c\xa4\xb2\x2c\x82\x3b\x22\xca\x4b\x22\xc8\ +\x23\xb2\x13\xec\x95\x14\xb4\xcd\xf1\x23\xe4\xb3\xa8\x2f\x31\xaf\ +\x16\x74\x7e\x6f\xd2\x07\xaa\x46\xfe\x4b\xd4\x69\x9b\xe2\x47\xc8\ +\x67\x64\x2f\x31\xd5\x51\x69\x07\x3b\x56\x3f\xaa\x7f\x25\xcf\x37\ +\x5e\x3f\xbb\x95\x47\x2e\xe7\x2e\x2f\xbc\x6a\x90\xa8\xe6\xd1\xf4\ +\xa3\xed\xb5\x73\x76\x69\xa7\xfd\xd6\x7e\x66\x4e\xc1\x51\xa9\x25\ +\xfd\xda\x6e\x66\x4e\xc1\x51\x37\x40\x40\xa9\x52\x5d\x08\x38\xab\ +\x3f\x89\xf4\x71\xd5\x32\xa1\x57\xd5\x5f\xc4\x7a\x3b\x7f\xbc\xa8\ +\x06\x84\x0a\x91\x16\x7d\xae\x22\x95\xc0\xe8\x2d\x8d\xee\x07\x3d\ +\xb4\xd9\x26\x17\xf0\x52\x8e\x36\x10\x80\x2b\x5b\xe0\xe9\xbb\x35\ +\x4f\x35\x17\x6d\xcb\x24\x43\xb7\x9a\x38\xdc\x47\xe1\x57\x59\x29\ +\xab\xec\xa3\x7c\xae\x95\xb8\x84\x8c\x8d\xa3\x5b\x92\x2c\xc5\xae\ +\x71\x37\xc4\x46\xfa\xb3\xbb\x39\x4d\xc7\xa6\x61\x46\x15\x9a\x6f\ +\x84\x2a\x53\xf0\x26\xf9\x8d\x39\xfe\xe2\x95\xb9\x79\x48\x7e\x0c\ +\xe3\xe8\x46\x7a\x9e\x57\x5e\xa8\xe1\xd1\x5a\x0c\x28\xc2\xa9\x1b\ +\x96\xb4\x87\x76\x61\xfc\x97\x9e\xab\xa9\x46\x57\xd1\xf0\x8f\x1c\ +\x70\x54\x77\x13\x70\xe9\xbe\x8b\x6c\x28\xc2\xab\x06\x55\xd1\x70\ +\xe0\x71\xc7\x33\x7a\xd8\x9c\x32\x9e\x88\xff\x00\x15\x10\xe3\x25\ +\xbd\x61\x36\x9d\x35\x63\x85\x18\x57\x13\x72\x86\x8c\xff\x00\x17\ +\x4d\xf3\xcd\x18\xeb\x2a\x56\xea\xc5\x31\xd1\x53\x4e\x78\xa7\x8b\ +\xf3\x57\x66\xab\xa3\x0a\x30\xa6\x36\xb6\x23\xa2\x68\x8f\x14\x8c\ +\x3e\xf5\x2b\x5c\x0e\x82\x0f\x11\x05\x0d\x1b\x85\x18\x54\x81\x87\ +\x78\xfa\x92\xeb\x67\x78\xfa\x91\x11\x61\x4b\x85\x3f\x0a\x30\xa0\ +\x8f\x0a\x30\xa9\x30\xa3\x0a\x06\x61\x42\x93\x0a\x11\x45\x3b\x76\ +\x36\x72\x19\xd9\x0b\xcc\x35\x70\x5a\x67\x0d\xea\xaa\xc1\xfd\x59\ +\x3f\x25\xea\x54\xe3\x63\x67\x21\x9d\x90\xbc\xc3\x28\x85\xa7\x93\ +\xcd\x59\x54\x3e\xd4\xa5\x63\x37\x5c\x15\xca\x39\xf6\xa7\x8d\xbd\ +\xa0\xa4\x51\xd4\xed\x1d\xff\x00\xdb\xab\x9b\xab\x4e\xef\xdd\xe6\ +\xe6\xa4\xec\x95\xcf\x19\xcc\x38\x87\x52\xe8\x1e\x42\x5e\x6d\xfd\ +\x92\xb9\x60\x3e\x2b\x79\x2d\xea\x41\x2d\xd0\x91\x08\x38\xea\xff\ +\x00\xc7\xf4\x71\xfd\xe5\x42\xdd\x03\xe6\x57\xd5\x5a\x67\xf4\x76\ +\xff\x00\x79\x67\x66\xf2\x6e\xe4\x1e\xca\xb3\xe2\x25\xd7\x8b\x05\ +\x84\x8f\x60\xde\x12\x3d\xa0\x6e\xe8\xbd\x82\xed\xd4\xe8\xe7\x99\ +\xae\x73\x26\xc4\x31\x90\x3f\x6e\xa6\x8d\xd9\x9a\x2f\xe2\x48\xf0\ +\xed\x37\xce\xb2\x45\x82\xe7\x30\xd2\x77\x06\xfa\x9a\x9c\x67\x3c\ +\x43\xde\xbf\x53\x0f\x65\xe7\xc9\x9c\xe3\x99\xc9\x7d\x75\xbf\xee\ +\x31\xd7\xa6\xd9\xba\x99\x5d\xf0\x5b\x52\xee\x44\x94\x72\xf5\x38\ +\xa6\x54\xd2\xd7\x44\x03\xa5\x6d\x64\x6d\x2e\x6b\x03\xa4\xa7\x84\ +\x30\xb9\xda\x1b\x8b\x45\xca\xc9\x6b\x4d\xf8\xad\xf5\x05\x6d\x93\ +\x14\xec\x75\x4d\x8b\x18\x47\xe8\xd5\xae\xb3\x9a\xd2\x2e\x29\xa4\ +\x20\xd8\x8d\x20\xe7\x4f\x19\xec\x8e\x5f\x09\xc3\x9f\x3e\x5c\x93\ +\x29\x8c\xde\xba\x6c\xbf\xf5\x4c\x79\x26\x57\x5a\x59\x9f\xd2\x37\ +\x4b\x8f\x2a\x06\x3b\xb2\x54\x64\x4b\xba\xc8\xcf\x2a\x8e\x43\xd4\ +\xae\x98\x73\x0e\x20\x9c\xbf\x29\xb5\x09\x0e\xdd\x86\x98\xf1\xd2\ +\xca\xd4\xc2\xf1\xbb\x0d\x27\xda\x8f\xdc\xb4\x20\xa5\xbf\x9d\x06\ +\x77\x5e\x67\x03\x4f\xf4\x6a\x9c\xdf\x72\x70\x95\x9c\x07\xd5\xac\ +\x79\x5a\x02\x98\x61\x69\xd2\xd6\x9e\x36\x82\x82\x90\x16\xf0\x15\ +\x1f\x46\x7c\x5d\x6e\x41\x6b\x37\x62\xac\x1f\x3c\x4e\xeb\x2a\xe0\ +\xd1\x44\x74\xc5\x17\x46\xcf\xc9\x27\xea\xf8\xb8\x28\xfe\x66\x81\ +\xd4\x82\x94\xc7\x0e\xeb\x6a\x87\x1c\x50\xbb\xf0\x94\xdd\x6a\x9f\ +\x7e\x51\xc7\x4c\xd3\xd4\xc5\x79\xfa\xbe\x3f\x8b\x6e\x27\x3c\x75\ +\x14\x9f\xab\xe3\xf9\x63\xf9\xb2\xf7\x90\x52\x88\xe0\xdc\x98\x8e\ +\x3a\x57\x8e\xa0\x13\xda\xf8\xc6\x8a\xb0\xdf\xa1\x33\x3f\x18\x56\ +\xdf\xab\x59\xbf\x27\x48\xe3\xd7\x74\x87\x53\x1b\xf1\xe4\xfe\x99\ +\xeb\x62\x0a\xf6\xd5\x91\xa3\x54\x00\xfe\x7c\xec\xfe\xe2\x95\x9a\ +\xa1\x3f\xc1\xd5\x10\x7f\xde\x4d\xde\x2b\xa4\xea\x50\xe1\x1d\xf3\ +\xb6\x23\xf8\x13\x0e\xa3\x83\xf0\xc7\xcf\x1b\x4f\x51\x08\x68\xac\ +\xd5\x1a\xdf\x83\x5b\x7f\xf7\x4e\x77\x5b\x4a\xe5\xd5\x0c\xaa\xae\ +\xa7\x2d\x69\xa9\x37\x70\x24\x12\xf8\xde\xdd\x36\xdd\x8d\x4c\xed\ +\x41\x07\x81\x3c\x70\x9e\xfa\xe4\xd5\x0d\x43\x0d\x86\x67\x06\xc3\ +\x9a\x29\x4e\x66\x39\xa7\x33\x09\xdf\x2a\xed\x35\x1b\x2c\x88\xa8\ +\xaf\x95\xb2\x49\x58\x5c\x62\x73\x62\x30\x17\x32\x28\xcb\xaf\x88\ +\x97\x00\xd0\x0e\x1b\x61\xce\x7e\x64\x2d\x4d\x2c\x21\x91\xb1\x83\ +\x30\x6b\x18\xd1\xc4\xd6\x81\xee\x48\xba\xb8\x5f\x8a\x4a\x61\xb1\ +\xb3\x9b\x67\x64\x2f\x2f\xca\x71\x6a\x89\x7d\x32\x6f\x6b\x64\x3e\ +\xf5\xea\x94\xcd\xd8\xe3\xe4\x33\xb2\x17\x97\x65\x68\xb5\x54\xfe\ +\x96\x7d\xb0\x93\xef\x59\xc9\xbc\x3b\xaa\x54\x55\x3b\x47\x72\x4a\ +\x91\x47\x55\xb4\x7f\x21\xdd\x45\x73\x75\x6a\x23\xf2\x4f\xe4\x3b\ +\xa9\x72\x53\xed\x19\xc8\x67\x64\x2e\xba\x7f\x26\xee\x49\xea\x5c\ +\x54\x9e\x4e\x3e\x6e\x3e\xc8\x41\x30\x48\x26\x6d\xf0\xe2\x6e\x2f\ +\x8b\x88\x62\xdf\xd1\xa5\x0b\x8c\x17\xeb\xf7\xb7\x8b\xb4\x07\x36\ +\x6f\x17\x17\xc4\xbe\x9f\x94\x81\xd5\x5a\x66\xf4\x71\xfd\xe5\x9d\ +\x9b\xc9\xbb\x90\x7b\x2b\x45\x53\xb6\x9b\xd1\xc7\x5c\xab\x39\x37\ +\x93\x77\x20\xf6\x55\xc7\xbc\x15\x70\x53\xba\x59\x5b\x13\x0b\x1a\ +\xe9\x25\x0c\x06\x47\x06\x30\x17\x3c\x36\xee\x71\xd0\x05\xee\x4e\ +\xe0\x05\x75\xd5\xea\x63\xe9\xa5\x7c\x72\x3a\x37\x16\x92\xdc\x70\ +\xbf\x5c\x8d\xc5\xa6\xce\xc2\xeb\x0b\x8b\x95\x5e\xe1\xe3\x5c\x12\ +\x0b\x5c\x48\x23\x70\xde\xeb\xa2\x39\x9c\xe2\x71\x12\x6c\x33\x68\ +\x16\xb9\x24\xe8\xf3\xaf\xa7\xf0\xd3\x97\xf9\x92\xef\xe5\xdd\xfd\ +\x57\x1b\xae\x94\x8a\xe3\x25\xbf\x79\x77\xa2\x57\xff\x00\xdb\x3d\ +\x53\xab\x7c\x96\xfd\xe1\xfe\x6a\x2a\xf3\xff\x00\x4e\xef\xcd\x7b\ +\xbd\xbb\xf4\xee\x6f\xf5\x67\x8f\xcd\x1a\x76\xe8\x1c\x49\x52\x04\ +\x2f\x89\x7a\x0a\x95\x35\x28\x40\xa8\x49\x74\x5d\x03\x81\x45\xd2\ +\x5d\x2a\x02\xe9\x52\x21\x02\xdd\x2a\x6a\x54\x0a\x84\x88\x40\xab\ +\x97\x55\x33\xc1\x28\xf8\xcc\x2d\xfa\xde\x2f\xbd\x74\xdd\x45\x52\ +\xcc\x41\x8d\xf8\xd3\xd2\xb3\xeb\x54\x46\xdf\x7a\x0f\x4b\x73\x73\ +\x9e\x33\xd6\x84\xfc\x3a\x50\xba\xed\xe7\xd1\x29\x9b\xb1\xc7\xc8\ +\x67\x64\x2f\x2e\xcb\x31\x6a\xba\x8f\x4a\x8c\xfa\xe9\x99\xf9\xaf\ +\x55\xa6\x1b\x1c\x7c\xdb\x3b\x21\x79\x6e\x5d\x36\xd5\x95\x1c\xfd\ +\x31\xf5\xd3\xc3\xf9\xac\xe4\xe9\x8f\x75\x0a\x8e\xa7\x68\xfe\x43\ +\xfb\x25\x48\xa3\xa8\xda\x3f\x90\xfe\xc9\x58\x74\x69\xe9\x3c\x99\ +\xe4\xae\x2a\x33\xb1\x45\xcd\xc7\xd8\x0b\xb2\x83\x69\xf4\x57\x0d\ +\x11\xd8\xa2\xe6\xe3\xec\x04\x1d\x0a\xbd\xa7\xf6\x8b\x5f\x77\x16\ +\x10\x47\x07\x6c\x67\x77\xcd\x6f\x9f\x42\xef\x5c\x46\x29\x35\xfb\ +\xd8\xe0\xbd\xf4\xf8\xbe\x4e\xd8\xad\x8b\x4d\xf3\x68\x40\xfa\x9d\ +\xb4\xbe\x8e\x3a\xe5\x59\xd9\xbc\x9b\xb9\xb3\xd9\x5a\x2a\x8d\xb4\ +\xbe\x8e\x3a\xe4\x59\xd9\xbc\x93\xb9\xb3\xd9\x57\x1e\xf0\x56\x53\ +\x52\xba\x69\x99\x13\x0b\x03\xe4\x95\xac\x69\x7b\x83\x1a\x0b\x9e\ +\x1a\x09\x3b\x83\x3d\xc9\xdc\x00\xae\xaa\xad\x4c\x92\x9a\x57\xc5\ +\x2e\x02\xe6\xb8\xb2\xf1\xbc\x48\xc7\x16\x9b\x3a\xce\x1a\x45\xca\ +\xaf\x7b\x7c\x6b\x83\x62\x1c\x48\x39\xb4\xdd\x74\x47\x33\x9c\x4e\ +\x23\x7b\x68\xcc\x00\x17\x24\x9b\x00\x37\xd7\xd3\xf8\x69\xcb\xfc\ +\xc9\x77\xf2\xee\xfe\xab\x8d\xd7\x4a\x45\x6f\x92\xfe\x5e\x5f\x35\ +\x0d\x7f\xdc\x2a\x85\x6f\x93\x1e\x5a\x7f\x40\xaf\xfb\xa0\x17\xb7\ +\xdb\xbf\x4f\xe6\xfc\x7f\x71\x9e\x3f\x34\x69\x90\x90\xe9\xf9\xd2\ +\xaf\x8a\x7a\x0a\x80\x52\x22\xe8\x1d\x74\x59\x71\xd6\xd1\x19\x1c\ +\xc3\x71\x61\xa6\xe0\x3a\xfe\x3b\x1d\xa0\x82\x0e\xd7\x75\x73\xc5\ +\x40\x58\xe7\xf8\xae\x7b\x6c\x03\x4d\xd8\x1c\x5a\x18\xd6\xda\xf7\ +\x04\x67\x07\x36\x8e\x24\x16\x89\x55\x4b\x63\x94\x60\xbe\xbb\x60\ +\xd6\x89\x08\x76\x22\x46\x26\x67\x6d\x89\xcf\x6c\x59\x80\xbe\x9c\ +\xe7\x32\xb0\xa6\xc5\x81\x98\xf6\xd8\x5b\x8b\x45\xf1\x5b\x3e\x8f\ +\x3a\x09\x90\x92\xe8\xba\x05\x45\xd1\x74\x20\x5b\xa2\xe9\x10\x81\ +\xc8\x89\xb7\x9a\x95\xbb\xf5\x94\x7e\xca\x86\x3b\xdc\x9a\xa6\xd4\ +\xd6\xde\xae\x84\x7f\xcd\xb0\xfd\x58\xe4\x7f\xe1\x48\x95\xe9\x21\ +\xa9\x14\xb6\x42\xe9\x5c\xa1\xb4\xcd\xd8\xe3\xe6\xd9\xd9\x0b\xcb\ +\xbc\x20\x0b\x56\x54\x72\xe8\xcf\xf4\xe2\x0b\xd5\xa9\x86\xc7\x1f\ +\x36\xce\xc8\x5e\x5b\xe1\x18\x5a\xb2\x6e\x2a\x23\xd8\x1e\xe5\x32\ +\x6b\x1e\xec\xca\x8e\x61\xe2\x3f\x92\xee\xa2\x9e\x9b\x2e\xd5\xdc\ +\x97\x75\x2c\x3a\x34\x7a\x98\x76\x36\xf2\x47\x52\xe2\xa1\xf2\x51\ +\xf3\x6c\xec\x85\xd7\xa9\x27\x63\x67\x25\xbd\x41\x71\xd0\xf9\x28\ +\xf9\x0d\xea\x41\xd0\x84\x89\x6e\x83\x96\x7d\xb4\x9c\xc0\xeb\x91\ +\x67\xa5\xf2\x47\x9b\x3d\x95\xa0\x9f\x6d\x27\x31\xef\x7a\xcf\xcb\ +\xe4\x8f\x36\x7b\x2a\xce\xe2\xb2\x9a\x95\xd3\x4c\xc8\x58\x58\x1f\ +\x24\xad\x63\x4c\x8e\xc0\xc0\x5c\xf0\xd0\x49\xdc\x19\xee\x4e\xe0\ +\x05\x75\x55\xea\x5c\x94\xd2\xc9\x14\xa6\x32\xe6\xb8\xb0\xba\x27\ +\xeb\x91\x92\xd3\x67\x59\xdb\xa2\xe5\x57\xb9\xbe\x35\xef\x62\x1c\ +\x48\x23\x70\xdd\x4f\x1c\xae\x71\x38\x8d\xec\x33\x68\x00\x5c\x92\ +\x6d\x6f\x3a\xfa\x7f\x0f\x39\x7f\x99\x2e\xfe\x5f\x8f\xea\xb8\xdd\ +\x69\x2a\xb7\xc9\x8f\x2b\x51\xfe\x9f\x5d\xd8\x6a\xa7\x57\x19\x31\ +\xe5\x2a\x7f\xd3\xeb\x3f\xb6\xbd\x7e\xdd\xfa\x7f\x2f\xe2\x7e\xe2\ +\x71\xf9\xa3\x4a\x74\x94\x5d\x23\x8e\x73\xc6\x51\x75\xf1\x8e\xe5\ +\x42\x4b\xa5\x40\x25\x48\x8b\xa0\x5b\xa5\xba\x6a\x10\x39\x09\x11\ +\x74\x0a\x84\x5d\x17\x40\xb7\x45\xd2\x21\x03\x97\x5e\xa0\xb6\xf5\ +\xf4\x43\x7a\x59\xdd\xea\xa4\x9f\xf3\x5c\x4a\xcf\x25\x1b\x7d\x52\ +\xa6\xf9\x31\x55\xbf\xfa\x6d\x67\xe3\x56\x25\xec\xf4\x4c\x28\x52\ +\xe1\x42\xde\xdc\xe1\x29\x5b\xb1\xc7\xcd\xc7\xd9\x0b\xcb\xfc\x26\ +\x36\xd5\x72\xf3\x34\x67\xfa\xae\x1e\xe5\xea\x94\xa3\x63\x8f\x9b\ +\x8f\xb2\x17\x97\xf8\x53\x6d\xaa\x9d\xe7\xa5\xa5\x3e\xa9\xe5\xfc\ +\x96\x6b\x51\x8f\x48\xfd\x07\x88\xf5\x25\x48\x56\x5b\x5f\x6a\x31\ +\xd8\xa3\xe4\x33\xb2\x17\x2d\x17\x93\x67\x24\x29\xf5\x14\xec\x31\ +\xf3\x6c\xec\x85\xcf\x45\xe4\xdb\xf3\xf5\x94\x1d\x17\x42\x44\x20\ +\xe6\x9b\x6e\xfe\x63\xf1\x3d\x67\xde\x2f\x19\xe6\xff\x00\x0a\xd0\ +\x4f\xb7\x7f\x30\x7a\xdc\xa8\xa3\xda\xb7\x92\x3a\x90\x54\x32\x9d\ +\xee\x26\xcd\x36\xb9\xce\x73\x0d\x3e\x75\x65\x43\x93\x15\x72\xb1\ +\xd2\x43\x18\x91\x98\xb0\x5c\x10\x33\x80\x09\xd2\x47\xc6\x5d\x54\ +\xf4\xaf\x93\x3d\x8e\x1c\xfb\x4d\x6d\xcf\x36\x24\x68\x27\xc5\xd1\ +\xbc\x55\x9d\x2d\x54\x90\x34\x35\x92\x4d\x1b\x45\xcd\x9d\x15\xc5\ +\xc9\xb9\xce\x1b\xbe\x77\xd7\xb6\xf8\xee\x6e\xae\xac\x6e\xbf\x0c\ +\xf4\xc5\x14\xda\x85\x58\xcd\xb5\x2c\xbf\x33\x4b\xba\xae\xa6\xd4\ +\x39\xdd\x0c\xb2\x89\x23\x7b\x35\xda\x69\xe0\x05\xf6\x63\x5a\xe7\ +\xe1\x20\xb8\xba\xd9\xbc\x53\xe7\xd0\xb4\x71\x65\x44\xe3\x44\xf0\ +\xbb\xcc\x6e\xd3\xda\x3d\x4b\xb1\x99\x55\x3f\xc2\x8a\x37\x8f\x33\ +\x81\xbf\xad\xa3\xad\x39\xfc\x7f\x3f\x3f\x15\xe2\xe4\xcb\x78\xdf\ +\xf1\x3f\x3f\x62\x63\x25\xdc\x73\xb6\x56\xbb\x3b\x48\x77\x24\x83\ +\xd4\x9c\x54\xae\xd5\xca\x77\xf9\x5a\x06\x13\xbf\xad\xc6\xe3\xf6\ +\x5c\x4a\x51\x57\xa9\xa7\x4c\x52\xc3\xc9\x7c\xf1\x01\xd4\x17\x89\ +\xa4\x28\x5d\x6c\x82\x81\xfe\x4e\xb2\x66\x1d\xec\x71\x4b\xda\xb9\ +\x53\x7e\xa1\x69\xda\x57\x46\x79\xd8\x4f\x5b\x48\x41\x5f\x74\x5d\ +\x77\xff\x00\xf9\xca\x8f\x81\x25\x24\xbc\x52\x3a\x33\xea\x20\xa8\ +\xdf\xa8\x35\x83\xf8\x52\xef\x3c\x52\x46\xf1\xed\x2d\x41\xc8\x95\ +\x2c\x94\xd3\x33\x6f\x4f\x50\xde\x38\x9c\xee\xc5\xd7\x3b\xaa\xd8\ +\x36\xc7\x0f\x2c\x3a\x3e\xd0\x08\x27\x45\xd4\x71\xce\xd7\x6d\x5c\ +\xd7\x72\x5c\x1d\xd4\xa4\xb2\x01\x2a\x44\x20\x5b\xa1\x22\x2e\x81\ +\xca\xe7\x22\x19\x7d\x51\x6f\xc9\xa3\xaa\x3e\xb9\xa9\x87\xe6\xa9\ +\x6e\xb4\x3e\x0f\x59\x7a\xe9\x8f\xc5\xa2\x03\xeb\xd4\x0f\xfc\x6a\ +\xc4\xaf\x40\xc2\x85\x21\x08\x5a\x60\xda\x56\xec\x71\xf3\x71\xf6\ +\x42\xf3\x1f\x0b\x0d\xb5\x4f\x1d\x14\x47\xd5\x3c\xeb\xd4\xa9\x06\ +\xc7\x1f\x37\x1f\x64\x2f\x31\xf0\xbc\xdd\x9d\xbe\x7a\x13\xec\x96\ +\x53\xef\x52\xb5\x18\x62\x84\x14\x2c\xb4\xb8\xd4\x43\xb0\xc7\xcd\ +\xb3\xb2\x14\x34\x9b\x41\xc6\xfe\xd9\x52\x6a\x19\xd8\x63\xe4\x37\ +\xb2\x14\x54\xbb\x5f\xa5\x27\xde\x39\x04\xe1\x2a\x6a\x5b\xa0\xe7\ +\x97\x6e\xee\x67\xf1\x15\x45\x16\xd5\xbc\x96\xf5\x2b\xc9\x8f\x8e\ +\x79\x93\xda\x2a\x8a\x2d\xab\x79\x2d\xea\x40\x3a\x30\x73\xe1\x17\ +\xdf\xb0\xba\x7b\x1c\xe6\xed\x5e\xf6\xf1\x3d\xe0\x7a\xae\x82\x91\ +\x04\xbf\xa6\x4b\xc2\x17\x0d\xe7\x86\x3c\x7b\x42\xd4\xe4\x6e\x48\ +\x1d\x52\x8a\x79\x31\xc1\x13\xa2\x91\xac\x1f\xb3\x93\x8a\xec\x0e\ +\xb9\x73\x5e\x08\xf5\x2c\x89\x5e\xab\xe0\x61\xbf\xb3\xd6\x7a\x4c\ +\x63\xfa\x2d\xfc\xd5\x89\x55\xb3\xf8\x2d\xaa\x6e\xd1\xf0\xbf\x93\ +\x3c\xec\x3e\xa7\xb0\x8f\x6a\xaf\x9f\x21\x35\x42\x3f\xf0\x65\x77\ +\x9d\x8e\xa5\x94\x7a\x9a\xe0\xef\x62\xf6\x5b\x22\xc9\xa4\xdb\xc1\ +\xea\xb5\x0e\xa9\x9e\x56\x09\x00\xff\x00\x36\x96\xa1\x8d\xfa\xd6\ +\x70\x55\xe2\x20\x0d\x83\x22\xbf\xf9\x52\xb5\xae\xf5\x78\xa5\x7d\ +\x12\x02\x8a\x7a\x46\x48\x2d\x23\x19\x20\xde\x91\xad\x78\xf6\xa6\ +\x8d\xbc\x08\x3e\x46\xff\x00\xc4\xb7\x89\xc6\x41\xd6\xe5\x2b\x35\ +\x6a\x66\x68\xa8\x7b\x79\xc6\x06\xfb\x9a\xbd\x96\x6c\x8e\xa0\x7e\ +\x9a\x38\x01\xdf\x8d\x82\x13\xeb\x8e\xc5\x70\x4d\xe0\xea\x89\xdb\ +\x5d\x7e\x2e\x44\xef\x70\xf5\x49\x88\x26\x97\x6f\x38\xa6\xca\xfa\ +\xc1\xb5\x9a\x39\x38\x9c\xe1\xef\x72\xed\x66\x5c\xd4\x8d\xbc\x2c\ +\x78\xfa\x0e\xed\x35\xab\x4f\x55\xe0\xa2\x17\x6d\x6a\x1d\xfc\xe8\ +\x21\x9b\xb3\x81\x55\xcf\xe0\x9a\x61\xe4\xe5\xa6\x77\x4f\x4c\x7e\ +\xc6\x20\x9a\x37\x15\xae\xca\xaa\x69\x3c\xbe\xa7\x44\xef\x39\x84\ +\x13\xf6\x09\x48\x35\x43\x51\xdd\xb6\xa7\x74\x07\x7d\x92\x4b\x05\ +\xbd\x60\x27\x4f\xe0\xe2\xbd\x9a\x23\x73\xf9\xaa\x88\x5f\xf7\xd8\ +\x4a\xae\x9b\x25\xeb\xa3\xdb\x41\x52\x38\xe9\x5f\x28\xfa\xd1\x1b\ +\x28\x2d\xa3\xa4\xd4\xb9\x3c\x9d\x5d\x4b\x3f\x98\xc9\x87\xda\xba\ +\x94\xe4\xcc\x4e\xf2\x7a\xa4\xce\x29\xa0\xb7\x67\x0a\xc8\xd4\x53\ +\x90\x6d\x23\x61\xbe\xf4\xb8\xa2\x77\xa9\xed\x29\xac\xa7\x23\x3b\ +\x62\x70\xf3\xc3\x23\x40\xfb\x2e\x08\xad\x79\xc8\xfa\x93\xe4\xe7\ +\xa2\x9b\x8a\x47\x46\x4f\xaf\x12\x86\x4c\x95\xd5\x06\xff\x00\x0b\ +\x8c\x6f\xc5\x2b\x1f\xd7\x85\x66\x45\x44\x8d\xf8\x75\x2c\xe3\x0f\ +\x78\xf5\xb9\xae\x0a\x78\x72\x82\x76\x1f\x16\xac\x5f\x79\xd6\x07\ +\xd8\x5a\x82\xce\x6d\x4f\xa8\x67\x94\xa4\xa9\x67\xf2\xb1\x8f\xb0\ +\x4a\xb0\xc8\xac\xa0\xa7\xa5\xac\x9d\xb5\x0e\x92\x27\x4b\x15\x14\ +\x31\xe2\x86\x51\xe3\xba\x69\x85\x8f\x8b\x71\x72\xe6\xe7\xd1\xea\ +\x5c\x10\x65\xbd\x7b\x06\x69\x43\x80\xf9\x6f\x68\xf6\xe2\x5d\x79\ +\x21\xa9\x52\xea\xd5\x7f\xeb\x3a\xa0\x45\x3d\x31\x89\x8c\x00\xe6\ +\x9e\x58\xae\xe6\x01\x60\x2e\x1a\x5c\x5c\x4d\xbe\x10\x1b\xa6\xd6\ +\x25\x7a\xc6\x14\x27\xd9\x0a\xb2\x6d\x20\xd8\xe3\xe6\xe3\xec\x85\ +\xe6\x9e\x18\x5b\xb2\xc4\x77\xe8\xa7\xf6\x3f\xff\x00\x6b\xd3\xe9\ +\x1b\xb1\x45\xcd\xc7\xd8\x0a\xa7\x29\x32\x36\x9b\x54\x70\xeb\xe6\ +\x56\xb9\x8c\x7c\x6d\x74\x4f\x0d\x38\x1f\x6c\x40\x87\x02\x0e\x81\ +\xb8\x95\x5e\x0c\x4f\xb4\xd8\x79\xce\xf7\x1a\xd2\xea\x2f\x83\xda\ +\xfa\xab\x3b\x5a\xfd\x1a\x33\x9f\x5c\xa9\xbb\x09\x1f\x26\x3d\xb9\ +\xf9\xc3\x47\x9d\x7a\xc6\xa2\x64\x7d\x1d\x15\x8c\x10\x34\x49\x6b\ +\x6b\xcf\xd9\x27\x3f\x4d\xd9\xdb\xc4\xdb\x0f\x32\xb8\xc2\xa6\x97\ +\x6c\x26\xa7\x78\x2b\x86\x28\xda\xc7\x55\x54\xbc\x80\x05\xd8\xd8\ +\x23\x6e\x8d\xc0\x58\xe3\xed\x51\x4d\xe0\xa1\x80\x6c\x35\x72\x37\ +\x3b\x8d\xa6\x89\x92\xe7\x2e\x24\xe7\x61\x66\xfa\xf4\x0c\x28\xc2\ +\x88\xf2\xda\x8f\x06\x75\xad\xda\x49\x4d\x2f\xd2\x92\x27\x1f\x98\ +\xb4\x8f\xb4\xaa\xea\x32\x43\x54\x23\xdb\x51\xca\xe1\xbf\x11\x8e\ +\x61\xea\x63\x8b\xbd\x8b\xd9\x70\xa5\xc2\x9a\x36\xf9\xf6\xb2\x99\ +\xf1\xca\x5b\x24\x72\xc6\x75\x97\x66\x96\x39\x22\x27\xc6\xde\x78\ +\x17\x59\xf8\xb6\xad\xe4\xb7\xa9\x7a\xbf\x85\x91\xb3\xd2\x7a\x3d\ +\x4f\xde\x46\xbc\xa2\x1d\xab\x79\x2d\xea\x51\xa3\x8a\x42\x6d\x9f\ +\x73\xa9\x5d\xe4\xee\x47\xd5\xea\x81\xfd\x9e\x3d\x8a\xf6\x75\x44\ +\x97\x64\x0d\x3b\xa3\x15\xae\xe3\xe6\x68\x27\x7e\xcb\xd5\xf2\x67\ +\xc1\x95\x25\x1e\x19\x24\x1f\xa5\x54\x0b\x11\x24\xad\x1a\xdc\x67\ +\xfc\xb8\xb3\x81\xc6\x6e\x77\x88\x41\xe6\xd9\x35\xe0\xee\xb2\xbb\ +\x0b\xcb\x7f\x46\xa7\x39\xf5\xe9\x9a\x6e\xf1\xbf\x1c\x79\x8b\xf8\ +\xcd\x9b\xe7\x2b\xd7\x72\x6b\x25\xe0\xd4\xe8\x4c\x50\x63\x38\x9d\ +\x8e\x47\xc8\x6e\xf9\x1f\x84\x36\xe6\xd6\x00\x58\x01\x60\x07\xbd\ +\x5d\xe1\x49\x85\x56\x51\xd9\x16\x52\xe1\x49\x85\x54\x47\x64\x59\ +\x4b\x85\x26\x14\x11\xd9\x16\x52\xe1\x46\x14\x11\x59\x16\x52\x61\ +\x4b\x85\x04\x58\x51\x85\x49\x85\x18\x50\x46\xe6\xdc\x58\xe7\x1b\ +\xc7\x38\xf5\x2a\xea\x9c\x9a\xa3\x97\x3c\x94\x74\xce\x3b\xe6\x08\ +\xc3\xbe\xb0\x17\x56\xd8\x51\x85\x06\x66\x6f\x07\xf4\x0e\xd1\x0b\ +\xe3\xe6\xe7\x9d\xbe\xc2\xe2\x3d\x8a\xbe\xa3\xc1\x7d\x3b\xb6\x95\ +\x15\x2d\xf3\x3f\x59\x95\xbd\x80\x7d\xab\x6b\x85\x18\x51\x5e\x63\ +\x5b\xe0\x73\x18\x2d\x6d\x4c\x20\x3a\xc0\xbb\xf4\x5c\x12\x35\xb7\ +\x17\x20\x87\x90\x4d\xaf\xa4\x59\x7a\x0e\xa6\xea\x64\x54\xd0\xc7\ +\x04\x2d\xc1\x14\x4d\x0d\x63\x74\x9b\x6e\x92\x77\x49\x37\x24\xee\ +\x92\x4a\xee\xc2\x8c\x28\x22\xb2\x14\xb8\x50\x88\x6d\x18\xd8\xa2\ +\xe6\xe3\xec\x05\x29\xcd\xa7\xcc\x3d\x79\x82\x6d\x1b\x76\x28\xb9\ +\xb8\xfb\x01\x53\xe5\x9c\x45\xd4\xad\x02\x57\x45\x7a\xba\x16\xe2\ +\x61\x00\x8c\x55\x51\xb2\xf9\xfe\x2e\x2c\x7c\x6c\x17\xcd\x75\x71\ +\x93\x2c\xa4\xbf\x0d\xaa\xee\xc8\xb2\x6d\x3d\x4b\x25\x18\xa3\x7b\ +\x5e\xd3\x7c\xed\x37\x1a\x54\xb8\x56\x25\x96\x6e\x24\xb2\xcd\xc3\ +\x2c\x8b\x27\xe1\x46\x15\x54\xcb\x22\xc9\xf8\x51\x85\x06\x37\x2e\ +\xf2\x3a\x7a\xf7\x42\xf8\x1f\x13\x4c\x51\xcc\xc2\xd9\x4b\xda\x1d\ +\x8c\xb0\x82\x1c\xd6\xba\xdb\x5d\xed\xd5\x55\x92\xde\x07\xe0\x80\ +\x31\xf5\xce\x15\x52\x00\x36\x26\xdc\x52\xb4\x81\xba\x0e\x79\x7e\ +\x7b\x0f\x92\xbd\x1f\x0a\x30\xa2\xa2\x8e\x20\xd0\x1a\xd0\x1a\xd6\ +\x80\x1a\xd6\x80\x1a\xd0\x34\x00\x06\x81\xe6\x4e\xb2\x7e\x14\x61\ +\x44\x32\xc8\xb2\x7e\x14\x61\x40\xcb\x22\xc9\xf8\x51\x85\x03\x2c\ +\x8b\x27\xe1\x46\x14\x0c\xb2\x2c\x9f\x85\x18\x50\x32\xc8\xb2\x7e\ +\x14\x61\x40\xcb\x22\xc9\xf8\x51\x85\x03\x2c\x8b\x27\xe1\x46\x14\ +\x0c\xb2\x2c\x9f\x85\x18\x50\x32\xc8\xb2\x7e\x14\x61\x40\xcb\x24\ +\x52\x61\x42\x94\x47\x47\xe4\xa2\xe6\xe3\xec\x85\x0e\xa9\xea\x4c\ +\x35\x4c\x11\xce\xc1\x23\x03\xda\xf0\xd2\x5c\xd1\x88\x5e\xdb\x52\ +\x2e\x33\x91\x6d\x06\xea\x6a\x3f\x25\x17\x37\x1f\x64\x29\x92\xcd\ +\xb5\x32\xb8\xdd\xcf\x85\x54\x53\xe4\xad\x2c\x73\x36\x78\xd8\xf6\ +\x3d\x8d\xc2\xd6\xb6\x69\x5b\x10\x17\x27\x68\x1d\x63\xa7\x41\xcd\ +\xe6\x56\xe8\x42\x49\x27\x63\x2c\xf2\xcb\xcd\x77\xa0\x84\x21\x56\ +\x42\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\ +\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\x84\x02\x10\ +\x84\x02\x10\x84\x02\x10\x84\x1f\xff\xd9\ +\x00\x00\x02\xcc\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x02\x93\x49\x44\x41\x54\x78\x9c\x75\x93\xbf\x6b\x93\x41\ +\x1c\xc6\x3f\xf7\x7a\x6f\x92\xb7\x69\x4c\x4c\xac\x69\xb4\x62\xab\ +\x42\x51\x41\xd0\xea\xa6\x4e\x82\xa0\x55\xd1\xd2\xad\xab\x68\x40\ +\x87\x4e\x92\xbf\x40\x27\x3b\x88\x28\xb8\xa9\xb8\x94\x54\xfc\xb1\ +\x08\x0e\x22\x22\x48\xad\x3a\xb8\xc4\xc1\xbe\xd4\x68\x0d\xfd\x95\ +\xa6\x4d\x93\xf4\xee\xbd\x73\x48\x2d\xd6\xda\xcf\x76\x5f\x9e\xe7\ +\x78\xee\xb9\x3b\xc1\xbf\x5c\x7b\x9e\x43\xca\x3e\xa4\xdb\x8d\x94\ +\x51\x00\xb4\xae\xa2\x55\x01\xad\xf3\xdc\x3e\x7b\x03\x80\xdc\xeb\ +\xeb\xc0\x4d\xb1\x6a\xbc\xfa\xec\x18\xae\x3b\x84\xe7\xf5\x74\xb6\ +\x6d\x16\xe9\xb8\xc7\x89\xee\x0c\x00\x6f\x0a\x93\x94\xe6\x6b\xf8\ +\x53\x15\x4b\xad\x36\xc6\x26\xf9\x18\xd7\xbd\x05\x20\x56\xcd\xa1\ +\xf0\x03\x3c\xaf\xab\xff\x60\x86\xce\x8e\x36\x00\xfc\xe2\x14\xc0\ +\x9a\xf5\xe8\xcf\x05\xfc\xd2\x3c\xfd\x87\x3a\x18\xfe\x54\x44\x02\ +\xe0\xca\x21\xc2\xe1\xae\x0b\x07\xd2\x6c\x6f\x4f\x32\xfc\xfe\x1b\ +\xfe\x74\x05\x2c\x20\x04\x7c\xfe\x41\x67\x5b\x8c\x43\x99\x18\xe7\ +\x7b\x76\x31\x51\x9c\x66\x7b\x26\x05\x1f\x27\x90\x5c\x7d\x9e\xc3\ +\x0d\xf5\x9c\xd9\xdf\xce\xb6\xf4\x16\x9e\x8e\x8e\xe3\xff\x9c\x29\ +\xa3\xd4\x0b\x4c\x70\x17\x00\xc7\xc9\xfa\x8d\x46\xaf\x3f\x39\x97\ +\x38\xad\x0d\x3b\x33\x49\xea\xcb\x1a\x8c\x45\xb2\x49\xf4\xed\x6d\ +\x11\x22\x99\x8a\xf3\x72\x6c\x1c\x7f\x72\xb6\xcc\xb2\xba\xc6\x9d\ +\x73\x8f\x56\xfb\xc9\xbd\x3e\x8e\x52\x03\x27\xf7\x65\x48\xa5\xe2\ +\xd4\x54\x80\x05\x30\x06\x89\x15\xdd\xed\x99\xad\x54\x97\x35\xfe\ +\xaf\x39\x50\xea\xc5\x1a\x33\x40\xa3\x71\x13\x0b\xaf\xbe\x14\xe1\ +\x4b\xb1\x39\xb3\xcd\x06\x25\xd8\x68\x34\x1e\xa3\x5a\x57\xa0\x35\ +\x18\x73\x77\xdd\xd5\xde\x3a\x25\xd6\xcd\x56\x90\x68\xcd\x42\x5d\ +\x21\x84\x80\x20\xd8\x48\xb7\x21\x12\x6b\xaa\xbf\x4a\xb3\xad\xad\ +\x89\xcd\xcd\x04\x8e\x93\x05\xde\xfd\x57\x9d\x7d\xf2\x10\x63\x06\ +\x56\xcf\x20\x9c\x45\x07\x63\x0b\x53\xa5\x59\x16\x1b\x8a\xce\x74\ +\x02\x74\xd0\x4b\x76\x64\xe0\x3f\xe6\x01\x82\xa0\x37\xb3\x33\xcd\ +\x9e\xfd\x7b\x41\x1b\xb0\xb6\x20\x71\x44\x7e\xa1\x5c\x39\xec\xce\ +\xb4\x8a\x50\x2c\x0e\xdf\x4b\x09\xac\xbc\xcd\xe5\xfc\x29\x1c\xa7\ +\xd9\x87\x31\x59\x94\xea\x45\xca\x84\x0d\x47\x58\x5c\x56\x60\x03\ +\x8b\x90\xf9\x66\x39\x97\x86\x47\x69\xd4\x8f\xb4\x74\xec\x40\x46\ +\x5b\x48\x56\xcb\xf8\xc5\xe9\x66\xcc\x15\xd2\x5b\x13\xd4\x52\xdb\ +\x00\xa8\x14\xbe\x42\x38\xf2\x81\xfb\xfd\x47\x9b\x2f\x51\xca\x41\ +\x8c\xfb\x60\x69\xe2\x7b\x97\xdc\xd1\x41\x3d\x12\x23\xb4\x3b\x86\ +\xa9\xd5\x00\x70\x22\x1e\x73\x02\x4c\x65\x01\x3d\x33\x0b\x6e\x68\ +\x1c\x29\x07\xe1\xcf\x5f\x00\xc8\x8e\x1c\x43\xe9\x21\x6a\x4b\x3d\ +\x44\x3c\x41\x38\x0c\xc9\x14\x00\x5b\xaa\x65\xe6\x1a\x01\xcc\x97\ +\x2d\x9e\x37\x86\x74\x07\xb9\x77\xf1\xed\xda\x0d\xfe\x70\x65\x24\ +\x87\xd6\x7d\x68\xd5\x8d\xd6\xd1\x95\x84\x55\xa4\x5b\x40\xca\x3c\ +\xf7\x2e\xde\xf8\x5b\xfe\x1b\x1c\xdc\x0e\x28\xb8\xe3\xe8\xf3\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x1d\x4d\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ +\xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\ +\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x1c\xed\x49\x44\x41\x54\x78\ +\x5e\xd5\x9a\x07\x50\x15\xe9\xb2\xc7\x4f\xbd\x7a\xf7\x56\xdd\x77\ +\xef\xae\x19\x90\x60\xda\x95\x9c\xc1\x2c\x41\x82\x01\x73\x58\x73\ +\x42\xc0\x80\x8a\x24\x23\x39\x9b\x15\x11\x33\xa2\x28\xa2\x28\x08\ +\x08\xa8\x98\x56\xd7\xb8\x86\x75\x57\xd7\x08\x98\x40\x24\x9c\x21\ +\x63\xdc\xfb\x7f\xdd\x03\x83\x07\x04\xd9\xeb\xee\xbe\xaa\x47\xd5\ +\xbf\xbe\x39\x33\x73\xe6\x4c\xff\xbe\xee\xfe\xba\x67\x90\x85\xc6\ +\x25\xe6\x84\xef\x4f\x91\x87\xed\x3d\xd2\x82\x92\xfe\xa0\xfe\xcc\ +\x6b\xb5\xa4\xe6\x7e\xeb\xe3\xfe\x95\xfb\xd3\xe4\xe1\x71\x47\xb2\ +\x65\x61\xfb\x92\xaa\xd6\x1f\x39\x8e\x35\x07\x8f\x7d\x56\xab\x13\ +\xd2\xfe\x90\xea\xaf\x95\xf0\xc7\xaf\xd5\x92\x9a\xbb\x6f\xc5\xfd\ +\x1b\x8e\x9c\x40\x44\x5c\x72\xa5\x6c\xd5\xbe\xa3\xc2\xba\xc4\x0c\ +\xac\x8a\x4f\xf9\x4b\xb4\x72\xff\xd1\xdf\xb5\xef\xff\x5a\xeb\x0e\ +\x65\x20\x3c\x2e\x45\x2e\x5b\x7b\x30\x4d\xd8\xc0\x1e\xc0\x84\xfe\ +\x22\xad\x3a\x90\x2a\x6a\xdd\xa1\x74\xac\xe5\x59\x39\x90\x26\x8e\ +\x6b\x45\x8f\x68\xf9\xfb\x7f\x85\x36\x1c\x3e\x4e\x20\xd2\xe4\xb2\ +\x0d\x89\x99\x42\x64\xf2\x49\xb0\x17\x44\x26\x9d\xc0\xa6\xa3\x59\ +\xd8\x92\x76\x06\x9b\x53\x4f\x83\xf7\xf3\x89\xeb\xe9\x18\x8b\xcf\ +\x61\x23\xea\x25\xed\xab\xd3\xfa\x66\xc4\xd7\x88\xa0\x59\x0f\xda\ +\x7d\x08\xeb\x0f\x67\x22\x9a\xae\xbf\x35\xfd\x2c\xa2\xe9\x37\x36\ +\x1e\xa9\xbd\x7e\x83\xeb\xd6\x5f\xbf\x4e\x4d\x1d\xfb\x83\x62\xdb\ +\x08\x04\x01\x38\x7c\x54\xd8\x7c\xf4\x14\xa2\x0f\x1d\x87\xef\xba\ +\x28\xb8\xae\xf0\xc7\xdc\x65\xfe\x58\xb6\x72\x3d\x56\x6d\xdf\x8d\ +\xa8\xfd\x87\xb0\xeb\x48\x1a\x76\xa4\x1e\x47\xf4\xd1\x4c\x6c\x21\ +\x6d\x4b\x3d\x89\xe8\xe4\x4c\x51\x9b\x93\xd2\x11\x75\xf8\x98\x38\ +\x6e\xa2\x31\x32\x31\x0d\x9b\x48\xeb\x13\x8f\x62\x5d\xc2\x11\x44\ +\x26\x24\x23\x32\x2e\x11\x6e\xcb\x42\x30\x6b\xae\x17\xfa\x5a\x3b\ +\x60\xc4\xc4\x99\x70\xf6\x5c\x06\x3f\xfa\xbd\xf5\x7b\xe3\xb1\x2d\ +\x39\x15\xbb\x8f\x13\x94\xb4\xb3\xd8\x92\x7a\x86\xae\x91\x89\x8d\ +\xe4\xa2\x9b\x0e\xd6\x2a\x92\x6f\xf8\x4b\x95\xa8\x20\x85\xfd\xd1\ +\x04\x20\x52\x04\x90\x94\x2c\x6c\x4b\x39\x83\x2d\xf1\xe9\x58\xb8\ +\x74\x05\x26\x4c\x9b\x01\x5d\x63\x53\xf4\xe8\x67\x29\xaa\xff\x00\ +\x3b\x38\x8c\x1e\x8b\x09\x8e\xb3\xe9\xb8\x1f\x96\x87\xac\xc2\xa2\ +\x15\x01\xf0\xf6\x0f\x85\xa7\x5f\x08\x16\x07\x84\x61\x49\x50\x38\ +\x96\x05\xaf\x14\xb7\x79\x9f\x17\xc9\x23\x20\x18\x8b\x02\x83\xe0\ +\x1d\x18\x0c\x8f\xa5\x3e\x58\xe0\xea\x09\x6f\xb7\xa5\xf8\xb6\x93\ +\x26\xb4\xbb\xeb\xa2\x6b\x57\x4d\x7c\xa3\xad\x0b\x5d\xf3\x9e\xb0\ +\x70\x70\xc0\xc8\xe9\x8e\x70\xf5\x0d\x43\x40\xd4\x2e\x44\x1f\x4c\ +\xc3\x66\xba\xc9\xa8\x83\x92\x8e\x7d\xb1\xf8\x3a\x92\x14\xf7\x6f\ +\xa5\x24\x18\x75\x80\x00\x6c\x4c\x4a\x11\xb6\x24\x9f\xc2\xd6\x84\ +\x0c\x2c\x0e\x0c\xc1\x4c\x27\x17\xf4\xeb\x6b\x05\x2b\x2b\x5b\x92\ +\x1d\xfa\xf5\xb3\x86\x91\x91\x39\xac\x2c\x6d\xe0\xe5\xb9\x18\xa1\ +\xc1\xe1\x58\xb4\xd0\x1d\x01\x7e\x41\xf0\xf5\xf1\x87\xbf\x6f\xa0\ +\xb8\xcd\x0a\x0e\x0c\x15\x8f\x87\x04\x85\x21\x34\x34\x1c\xa1\x11\ +\x11\x08\x23\x85\x86\x85\xc3\xdd\xdd\x03\x1e\x1e\x9e\xd0\xd7\x31\ +\x80\x91\x8e\x31\x0c\xf5\x4d\xa0\x6f\x60\x02\x4d\x5d\x03\x74\xd5\ +\xd2\x81\xc6\x37\x5a\xe8\xf2\xad\x1e\xda\xa9\x77\x85\x3b\x01\x8c\ +\x4d\xcf\xc2\xa6\x23\xa9\x88\x3c\x42\x46\x50\x88\x7c\xa9\xa2\x39\ +\xe4\xea\xa4\xb8\x7f\x5b\x72\x16\x36\x1f\x3c\x26\x97\x45\x26\xa5\ +\x8a\x1e\xb0\xeb\x48\x16\xcd\x5e\x20\x1c\x67\x39\xa3\x4f\xcf\xbe\ +\xb0\xec\x67\x05\x6b\x8b\x01\xb0\x22\xf5\xea\xd1\x07\x0e\x43\x1d\ +\xb0\x74\xc5\x62\xac\x59\xb7\x0a\x5e\x8b\x3d\x11\x1c\x46\x06\x87\ +\x06\x21\x28\x24\x50\x14\x6f\x07\x87\x06\x22\x84\xc6\xd0\xf0\x60\ +\x44\x84\x86\x60\x75\x48\x08\x56\x85\x85\x20\x3c\x34\x18\x9e\x9e\ +\x8b\xe0\xe5\xed\x01\x03\x3d\x7d\x18\xeb\x18\xc2\x58\xcf\x18\x46\ +\x2c\x82\xa0\xaf\x6f\x44\xa3\x31\x4c\x0c\x8c\xa0\xa6\xd6\x09\x0b\ +\xbc\x97\x62\x5f\xe6\x29\x6c\x4a\x22\x00\x14\x5a\x8a\x46\xfc\x59\ +\xda\x9e\x72\x0a\x9b\x0f\xa7\xcb\x65\x51\x47\x33\x84\x9d\xc7\xbe\ +\xc7\xee\xe4\xd3\xf0\x26\xb7\x9d\xe5\xec\x44\x00\x7a\x91\xe1\x96\ +\xb0\x24\x59\xf4\xb7\x40\x6f\xfa\x6c\xef\x30\x10\x1e\xcb\x3d\x10\ +\xbe\x3e\x02\x8b\x96\xba\xc3\x37\xd4\x0f\x7e\x61\xfe\xe2\x28\x6d\ +\xb3\xfc\xc3\x03\x10\x10\x11\x48\xb3\x1e\x8c\x95\xa1\xa1\x58\x19\ +\x16\x8a\x30\x02\xe0\xe1\xb1\x08\x9e\x0c\xc0\x40\x5f\x84\x60\xa8\ +\x6f\xd0\x40\x06\xfa\x7a\x34\xea\x43\xad\x53\x27\xb8\x51\x28\xee\ +\x3f\x41\x89\x38\xf9\x38\xa2\x92\x4f\x60\x0b\x25\xca\x3f\x5b\x3b\ +\x28\x01\x6f\x3e\x92\x21\x97\x6d\x4e\xc9\x14\x76\xa5\x9f\x47\xec\ +\xd1\x33\x04\x80\x12\xd5\x6c\x67\xf4\xea\xd3\x1b\x96\x03\xac\xd1\ +\xdf\xca\x12\xfd\x2c\x2d\xd0\xa3\x77\x2f\xd8\xda\xdb\xc2\x7b\xb1\ +\x17\x56\xaf\x59\x25\x8e\x7e\xfe\xbe\xf0\x0f\xf0\x43\x40\x80\x3f\ +\x02\x02\xfd\x11\x18\x14\x80\xe0\xe0\x20\x84\x84\x04\x93\xfb\x87\ +\x90\x87\x84\x21\x88\x5c\x3f\x88\x42\x21\x28\x24\x9c\x00\x78\xc3\ +\xcb\x6b\x09\xf4\x0c\x0c\xa1\x43\x10\xf4\x0c\x0d\xa0\xcf\x32\x20\ +\xe3\x49\x7a\xb4\x4f\xdb\xc8\x10\x4a\x5d\xba\x62\xc1\xb2\x00\x1c\ +\xc8\xba\x84\xad\x47\x29\x29\xa6\x9c\xc5\x76\x5a\x99\xfe\x6c\xc5\ +\xa4\x9f\xa3\xeb\x67\xc9\x65\xbb\x52\x8e\x0b\x31\xc7\x2f\x20\x96\ +\xb2\xef\x62\x0a\x01\x27\x97\x3a\x00\xd6\x56\xe8\x4f\xc6\xf7\xb7\ +\xb4\x44\xcf\xde\xbd\x61\x6f\x67\x07\x6f\x4f\x6f\xac\x5d\xbd\x06\ +\x9e\x14\xcf\x81\xfe\x01\xa2\x82\x02\x02\x45\x05\x53\xc2\x0b\xa1\ +\x84\x17\x12\x44\x00\x82\x43\x08\x44\x28\x01\x08\x23\x10\x94\x13\ +\x08\xc2\x22\x77\x4f\x78\x12\x04\x7d\x43\x02\x60\xa8\x0f\x5d\x32\ +\x58\xd7\xf0\x23\x08\x3d\xda\xd6\x32\xd2\x83\x52\xe7\xce\x70\xa3\ +\x95\xe8\xe0\xe9\x8b\xd8\x4e\xf7\xb4\x8d\x56\x86\x9d\xa9\x59\xff\ +\x91\x76\x34\xa3\x9d\x69\xa7\xea\x15\x9b\x79\x0e\xdb\xd3\x08\x40\ +\x2c\x01\xd8\x7d\xf2\x3c\xf6\x64\x9c\xc3\x52\xdf\x00\x38\x3b\x39\ +\xa1\x37\x19\x6c\x49\x86\xf7\xef\xdf\x5f\x1c\xf9\xb3\x1d\x01\xf0\ +\xf2\xf2\xc2\x9a\x35\x6b\xb0\x68\xd1\x22\x9a\x75\x02\x10\x18\x58\ +\xaf\xa0\xa0\x20\xf2\x82\xda\x31\x38\x98\x40\x50\xfc\x87\x92\xc2\ +\xc2\x38\x21\x86\x8a\xdf\xf1\xf0\xa0\x10\xa8\x33\x96\x67\x9c\xa5\ +\x2f\x79\x02\xed\xd3\x31\xd0\x81\x72\x27\x75\xb8\xfb\xf8\x21\xf1\ +\xec\x0f\xd8\x79\xec\x14\x76\xa4\x9f\xc6\x2e\x1a\x5b\xd2\xce\x63\ +\x59\x1f\x95\xd6\xb4\x62\xd2\x4f\xd5\x6b\xcf\x89\xef\xb1\x2b\xed\ +\x94\x5c\xb6\x27\xed\xa4\x10\x7b\xf2\x02\xf6\x9f\xbc\x08\x1f\x9a\ +\xc1\x59\xb3\x1c\x9b\x04\x30\x60\xc0\x00\x11\xc0\xda\xb5\x6b\x45\ +\x43\xfc\xfc\xfc\xe0\xef\xef\x2f\x2a\x20\x20\xa0\x01\x08\x06\x20\ +\x49\x04\xf1\x1f\x02\xf0\xf0\xf5\x47\xd2\xf9\x2b\xd8\x9d\x79\x16\ +\x31\xc7\xcf\xd1\x6c\x9d\x6d\x51\x31\x04\xaa\x25\xed\xce\x38\x53\ +\xaf\x7d\xa7\x7e\xa0\x95\xe6\xac\x5c\xb6\x37\x23\x4b\xd8\x9b\x75\ +\x11\x09\xa7\x2f\xc3\x27\x88\x72\x80\xe3\x47\x00\x16\x16\x16\xf5\ +\x00\x6c\x6c\x6c\x1a\x78\x80\xaf\xaf\x6f\x3d\x00\x09\x82\x04\x82\ +\x21\x48\x92\x40\x2c\x58\xb0\x00\x1e\xee\xee\x14\xf3\x8d\x0d\xaf\ +\x95\x81\x91\x01\x85\x84\x2e\x54\x3a\x69\x7c\x11\x00\x45\xe3\x5a\ +\x3a\x97\xd5\x00\x40\xdc\xa9\x4b\x38\x78\xe6\x0a\x79\x40\x08\x9c\ +\x66\xcd\x42\xaf\x5e\xbd\x44\xc3\x25\xf5\xe9\xd3\x07\xb6\xb6\xb6\ +\xb4\x94\x79\x62\xf5\xea\xd5\x0d\x00\xb0\xd1\x8d\x41\x34\xf6\x06\ +\x1e\x5d\x5d\x5d\x3f\x0f\x80\x3d\x83\x72\x80\x72\x1d\x80\xe4\x0b\ +\x57\x11\x4b\xc6\xef\x26\x57\xdd\x43\xe3\x9f\xad\xfd\x94\x63\xf6\ +\x64\x7c\x2f\x97\xc5\x65\x9e\x16\xe2\x68\xf6\x0f\x9d\xbd\x0a\x5f\ +\xf2\x00\x67\xa7\xa6\x01\x58\x59\x59\x89\x86\x73\x08\xf0\xb8\x62\ +\xc5\x8a\x4f\xbc\x40\x0a\x0b\x45\x4f\xf8\xbd\x00\xa4\x10\x50\xd2\ +\x50\x13\x01\x1c\xfd\xe1\x9a\x18\xa7\xb1\x94\x9f\xf6\xd2\xf8\x67\ +\x2b\xfe\xcc\x25\xec\xcd\x24\x00\xfb\x4e\x9c\x15\x0e\x9c\xb9\x8c\ +\xa4\x73\x57\xe1\x1f\xb6\x1a\x4e\xce\xce\xa2\xcb\xb3\xfb\x4b\x21\ +\xc0\x00\x78\xdb\xcd\xcd\x4d\x04\xc0\xe3\xf2\xe5\xcb\x45\x00\x8a\ +\xb9\x40\x71\xbb\x41\x72\xa4\x71\xde\xbc\x79\x04\xc0\x03\x86\xb4\ +\xd4\x7d\x02\x80\xdc\x5f\x8f\x6a\x00\x5d\xaa\x07\x94\xd5\x3b\xc1\ +\xcb\x37\x08\x27\xae\xdd\xa6\x49\xb9\x8c\x84\xb3\x57\x70\xf0\x2c\ +\x7b\x68\xad\x12\xce\x5c\xfc\xb8\x7d\x9a\x46\x9a\xbc\x83\x74\xff\ +\x09\x34\xa3\x87\xc8\x8b\x0f\xd2\xbe\x03\xe4\xde\xe2\x3e\xf2\xec\ +\xf8\xac\x1f\xe8\x33\x85\x38\x89\xb7\x25\x1d\x22\x7b\xf7\x67\x9d\ +\x97\xcb\xe8\x22\x42\xe2\xb9\xcb\x48\xfd\xfe\x2a\x82\xd6\x44\xd1\ +\x32\x38\x07\x7d\xfb\xd6\x1a\xcc\x49\x90\xc7\xbe\x7d\xfb\x8a\x23\ +\xcf\x3c\x87\xc0\xfc\xf9\xf3\xeb\x01\x48\x10\x14\x67\x5f\x31\x27\ +\x48\x9a\x3b\x77\xae\x18\x42\x46\x46\x46\x22\x00\x03\x02\xa1\xa9\ +\xad\x05\x2d\x1d\x6d\x68\xeb\xea\xa0\xbb\xa6\x26\x34\xbb\xeb\xa0\ +\x5d\x87\x8e\x98\xbd\xc0\x13\xf1\x47\xa9\x5c\xdd\x7f\x04\x5b\xe3\ +\x93\xb0\xfd\x50\x32\xb6\x1f\xac\x1d\x77\x1d\x4e\x45\x4c\x52\x9a\ +\xa8\x9d\xd4\x74\xc5\x50\x03\xb6\x8b\x75\x24\x9d\x6a\x99\xe3\xb4\ +\x3f\x9d\x8a\xba\x4c\xc4\x51\xd6\xdf\x73\xf4\x04\xf6\xa4\x9c\x40\ +\x1c\x35\x6f\xfb\xe8\xf3\x01\xca\x0f\x07\x32\xce\xe2\x00\xe5\x80\ +\xc4\xac\x0b\x88\x4f\x3f\x23\x97\x25\x9e\xbe\x22\x24\x9d\xbf\x86\ +\x63\x17\x7e\x44\xe8\xba\x2d\x70\x9e\x3d\x97\x0c\xef\x57\xef\x01\ +\x8a\x00\x16\x2e\x5c\x88\x95\x2b\x57\x7e\x16\x40\x63\x18\x0d\x00\ +\x78\xb0\x07\x18\x89\x6b\x3f\x1b\x3f\x70\xf0\x20\x4c\x98\x34\x11\ +\x63\xc6\x8d\xc5\x98\x31\x63\x30\x7a\xd8\x70\x8c\x1a\x3e\x82\x3e\ +\x8f\xc7\xd8\x09\x93\x30\x66\xe2\x14\x51\x63\x27\x4e\xae\xd7\xb8\ +\x49\x93\xf1\xdd\xe4\x29\xa4\xa9\xa4\xe9\x18\x3f\x79\x06\xc6\x4f\ +\x99\x81\x29\xb3\xe6\x60\xba\x8b\x2b\xa6\x3a\xcd\xc5\x8c\xd9\xf3\ +\xe1\xe4\xea\x46\xdd\xe7\x42\x38\xcf\x77\x27\xa0\x1e\x98\xe3\xe6\ +\x89\x79\x8b\xbc\x31\xcf\xbd\x56\x0b\xbd\x96\x61\xbe\xe7\x12\x02\ +\x70\xe6\x8a\x90\x4c\xc6\x33\x80\xf0\x8d\xdb\xe0\x32\x7b\x1e\xb9\ +\xfd\xc7\xd9\x97\x00\xf4\xeb\xd7\x4f\xcc\xe4\x0c\x80\xc7\x65\xcb\ +\x96\xc1\xc7\xc7\x47\x54\x63\x10\xcd\x02\x60\x0f\x30\x36\x86\xb6\ +\x9e\xae\xe8\xfa\x66\x3d\xcc\x61\xde\xb3\x07\x15\x5a\xbd\x30\xc8\ +\xde\x1e\x43\x6c\x6d\x30\xd8\xce\x16\x76\x36\xd6\xb0\xb6\xa6\xfc\ +\x63\x6d\x01\xab\x01\x96\x54\x85\xda\xc0\xc6\xd6\x9a\x56\x22\x6b\ +\xd8\x51\x45\x6a\x67\x67\x43\x49\xd9\x86\x46\x7b\xd2\x40\xd8\xdb\ +\x0f\x82\xfd\xc0\x41\x18\x34\x68\x08\x06\xd2\xb6\x9d\xfd\x40\x0c\ +\x1c\x34\x18\x03\x69\xdf\xe0\xc1\x43\x30\x64\x88\x03\x86\x38\x0c\ +\x85\x83\xc3\xb0\x5a\x0d\x1d\x86\x61\xc3\x46\xf0\x76\x1d\x80\x1f\ +\x08\xc0\xf9\x1f\xb1\x2a\x6a\x27\x79\xc0\x3c\xea\xfc\x2c\x45\xa3\ +\xa5\x24\xc8\xc6\x73\x1e\xe0\x99\x8f\xa0\xee\x8e\x73\xc0\xd2\xa5\ +\x4b\x45\x2f\xe0\x64\x28\xa9\x31\x0c\xc5\x04\xa9\x08\x40\x97\xea\ +\x7e\x06\xa0\x43\x20\xbe\xd5\xec\x0e\xfb\x41\x03\xb1\xd0\x6d\x21\ +\x66\x3b\xbb\xc0\xd9\x71\x16\x9c\x1c\x67\xd2\xb6\x23\x25\xe4\xe9\ +\xb4\x2a\x4d\xa3\xa5\x79\x2a\x66\x4c\x9f\x8c\xe9\xd3\x26\x8a\x9a\ +\x32\x79\x3c\x26\x4f\x1a\x8f\x69\xe4\x09\xac\xa9\xa4\x29\xe4\x19\ +\x93\x27\x4e\xc2\xa4\x09\x13\x31\x7e\xdc\x77\xa4\x71\x75\xe3\x47\ +\x8d\x23\x2f\x1b\x37\xba\x4e\x63\xc6\x92\xb7\x0d\x97\xcb\x0e\x9f\ +\xbd\x2a\xa4\x5c\xba\x89\x8c\x8b\x37\xb0\x6e\x4b\xac\x18\x02\x56\ +\x56\x0d\x01\xb0\x37\x30\x00\x4e\x64\x5c\xd9\x71\x28\x34\x07\x40\ +\xd2\xef\x01\xc0\x65\xf1\x37\xdd\x35\x31\xf6\xbb\xe1\xd8\x10\x19\ +\x41\x65\x73\x20\xc2\xc2\x83\x10\x1e\xe1\x4f\xf2\xa1\xbe\xc3\x87\ +\xea\x0e\x3f\xac\xe4\xed\x55\x01\x58\xb3\xda\x9f\xc6\x20\xfa\x4c\ +\x6d\x37\xf5\x1c\x61\xd4\x63\xd4\x8b\xdb\xef\x10\xaa\x3a\x83\xc3\ +\xa8\xfb\x8c\xa8\x97\xe2\x39\xc1\xb4\xca\x49\xe2\x63\xc1\x81\x21\ +\x72\x59\xd2\xb9\x6b\xc2\xb1\x2b\xb7\x90\x79\xf9\x26\x36\x6c\xdf\ +\x23\x02\xb0\xa6\x3e\xa0\x31\x00\x5e\x19\xd8\x08\xae\xea\x38\x04\ +\x96\x2c\x59\xf2\x09\x80\xc6\x9e\xa0\x18\x12\x12\x00\x13\x63\x53\ +\x02\x60\x58\x97\xf9\xb5\x60\x62\xae\x49\x4b\xe3\x54\x98\x98\xac\ +\x85\xa9\xf9\x1a\xf4\xe8\x1f\x82\x9e\x16\x81\xe8\x37\x20\x8c\x42\ +\x60\x0d\xac\x07\x44\xc0\xd6\x2e\x14\xb6\x83\x02\x61\x3b\x70\x25\ +\x6c\xec\xdc\x30\xd3\xd1\x15\x21\xc1\xab\x10\x44\x95\x6b\x60\x60\ +\x90\xa8\x20\x32\x2a\xb0\xee\x73\x50\x50\x70\xbd\x82\xa9\x2f\x91\ +\xc4\xfd\x89\xa4\x88\x88\x55\x34\x86\x11\x80\xf3\xd7\x84\xf4\x6b\ +\x3f\xe1\xc4\xd5\x9b\x88\xdc\xb1\x97\x72\xc0\x5c\xd8\x52\xd5\xc7\ +\x6e\x2f\x55\x83\xbc\xcd\xb5\x81\x04\x80\x43\x61\xf1\xe2\xc5\x9f\ +\x35\x5e\x51\xbc\xaf\x16\x80\x07\x4c\x4d\x7a\x90\xe1\xa6\xd0\x33\ +\xa1\x55\x40\x4b\x03\x43\x47\xe9\xc1\xdc\xec\x30\xda\xb5\x7a\x09\ +\x0d\xe5\x6c\xa8\xa9\x3f\x40\x3b\xa5\xc7\x68\xd3\x3e\x17\xed\xdb\ +\x14\x43\xad\x43\x1e\xd4\x3b\x3c\x84\xb2\xca\xcf\x50\x6a\x57\x80\ +\x7f\x7e\x15\x89\xde\x96\xa3\xc9\x43\x22\x1a\xe4\x18\xc5\xbe\xa4\ +\x39\x29\x56\xa8\x61\xd4\xa6\x53\x8d\x22\x97\x25\x9f\xbf\x4e\x00\ +\x6e\xe1\xd4\xf5\xdb\x88\x8a\xd9\x47\x75\xc0\x6c\x11\x80\xd4\x07\ +\xb4\x04\x80\xbd\x40\x51\x4d\x41\xf8\x08\xc0\x93\x00\x98\x8a\x2d\ +\xb1\x2e\x85\x82\x8e\x4e\x77\x0c\x1a\xa6\x03\x63\xb3\x1d\x50\x51\ +\xca\x44\x9b\x7f\xf8\x40\xa9\x55\x02\xba\xaa\x3e\x83\x9a\xf2\x0b\ +\x74\x52\x7b\x86\x0e\x6d\x52\xd1\xea\x6f\x91\xe8\xac\x72\x01\xdf\ +\xaa\x80\x3e\x27\xc3\xc2\x6e\x3c\xc2\x56\x2f\x27\xc3\xfd\xbe\x18\ +\x00\xdb\x41\xfb\xe4\xb2\xa3\x97\xae\x0b\x19\x3f\xfe\x84\x33\x37\ +\x7e\xc6\x96\x3d\x09\x98\xe5\xe4\x22\x66\x58\x36\x5a\x5a\x05\x14\ +\x01\x70\x73\xc3\x21\xc0\x00\xd8\x60\x5e\x0d\x14\x25\x2d\x8f\x8a\ +\x10\x1a\x00\x30\xe5\x3a\x40\x0f\xba\x46\xa6\xd0\xd6\xd2\xc1\xb0\ +\xd1\x54\x01\xea\x6f\x44\x9f\xfe\x89\x74\x6d\x5f\xa8\xa8\xda\x40\ +\xa9\xed\x1e\x82\x90\x8b\x8e\xca\x97\x30\x62\x42\x34\xa6\xb9\x8c\ +\xc3\x57\xad\x46\xa0\x5b\xc7\xbb\x50\x6a\x9d\x48\xe1\xe1\x88\x90\ +\x88\x20\x88\xcf\x22\xfe\x28\x80\xd4\x2b\x37\x84\xe3\x64\xfc\x99\ +\x9b\xbf\x60\xe7\xfe\xc3\x70\x24\x00\x76\xb4\x14\x49\x6b\xbf\x04\ +\xa0\x67\xcf\x9e\x98\x3d\x7b\xb6\x58\xda\x72\x41\xe4\xed\xed\x2d\ +\x1a\xcc\xc9\x50\xd1\x78\x86\x33\x8b\xfa\x09\x45\x10\xac\x39\x73\ +\xe6\x88\xcd\x94\x89\xb1\x11\xe5\x00\x32\xda\x90\x96\x43\x6d\x4d\ +\x38\x8c\xd4\xa3\xa2\x68\x0b\xfa\x59\x9c\x44\xc4\xaa\xf5\xe8\xa0\ +\x6a\x0e\x65\xe5\xdd\xe8\xa4\x52\x84\x76\xad\x6f\xc2\x6d\xd9\x09\ +\x2a\xd0\x02\xf0\xdf\xff\x18\x88\xae\xea\x3f\x91\x07\x1c\x40\xff\ +\x01\x4e\xe2\xf3\x46\xc5\x10\x50\x4c\xb8\xbf\x17\x00\x8d\x72\x59\ +\xda\xd5\x9b\xc2\x09\x32\xfe\x2c\x69\x57\xfc\x11\xf1\x99\x60\x53\ +\x00\x7a\xf4\xe8\x01\x17\x17\x17\xf1\xcb\xbc\x0c\x4a\x00\x14\xc5\ +\xee\xcf\xe1\x31\x7e\xfc\x78\x11\x00\x1b\x2e\xe5\x06\x86\xc7\xed\ +\xb0\x31\xcd\xbc\xae\x1e\xb9\x3f\x55\x82\xda\x3a\x5d\x30\x98\x42\ +\xc0\xcc\x34\x1e\x4a\x1d\xae\xe0\xeb\x56\x6b\xd1\x41\x65\x1f\xd4\ +\x3b\xdd\x81\x2a\xb9\xbf\x6a\xc7\x27\xe8\xd4\xe9\x38\x94\x94\xa2\ +\xc8\x33\x92\xd0\x59\xfd\x15\xda\xb5\xdd\x0d\x0b\x9b\x49\x08\x8b\ +\x08\x6e\x90\x64\x15\x25\x01\x51\x1c\x1b\x7b\x09\x4f\xa4\xe8\x01\ +\x99\xd7\x7e\x12\x4e\xdd\xba\x8b\x73\xa4\x98\x84\xe4\xcf\x02\x70\ +\x72\x72\x12\xbf\xcc\x00\x78\x36\x25\x0f\x90\xc4\x46\x3b\x53\x2f\ +\x31\x6a\xd4\xa8\xfa\x8e\x51\xca\x0b\xbc\xdf\x9d\x9a\xa1\x5a\x00\ +\x54\x03\x50\xe7\xa7\xa5\xd5\x05\x0e\x23\x0c\x61\x66\x92\x40\x09\ +\xee\x05\xba\x68\x14\x43\x43\xad\x9a\xbc\xe0\x39\x54\xba\x5d\x85\ +\xb2\x6a\x0e\x54\x3b\x14\xa0\x93\xea\x53\x68\x68\x3c\x81\x46\xc7\ +\x2a\xb4\x25\x00\xd6\xb6\xa3\x10\x11\x16\xd0\x2c\x00\x45\x08\x4d\ +\x35\x6a\x2c\x06\x40\xfb\xe4\xb2\xd3\xd7\xee\x08\xe7\x7f\xba\x8f\ +\x8b\xb7\xef\x21\x36\x31\x85\x7a\x81\xd9\x54\x59\xd9\xd5\x37\x40\ +\x52\x4f\xc0\x39\x80\x5d\x9b\x01\x48\x0f\x37\xd8\x68\x5e\x0e\x15\ +\xc5\x21\xc0\xc6\xf2\x71\xc5\x95\x81\xe1\x31\x00\x53\xca\xfe\xba\ +\xfa\x9a\x04\xc0\x00\x5a\x54\x04\x0d\x1e\x66\x84\x9e\xbd\xf6\xa3\ +\x43\xdb\x8b\xf8\xea\xef\x9b\xa0\xd2\xe1\x30\xba\x76\xf9\x05\x1d\ +\x55\x1f\x40\x43\xb5\x88\xf2\xc0\x65\x7c\xfd\x15\x79\x85\xda\x25\ +\xca\x01\x95\xe8\xf0\xaf\xc3\xb0\xb7\x1b\x83\x95\xc1\x64\x98\x5f\ +\x43\x03\x25\x23\x19\xbc\x64\xa4\xe4\xf2\x8d\xc3\xe0\x23\x80\xeb\ +\x77\x84\x0b\xb7\x1f\xe0\xd2\xcf\xf7\x11\x9f\x92\x81\xd9\x73\x5d\ +\xc5\xc7\x5f\x9f\x03\xc0\x1e\xc0\x06\x36\x36\x9e\x8d\xe5\x30\xe1\ +\xba\x5e\x31\x44\x14\x3d\xc0\xd4\xc4\xa4\xd6\x03\x28\x07\x68\x69\ +\x69\x51\x0e\x30\xa2\x82\x28\x06\xc6\xc6\x89\x58\x38\x7f\x26\x3a\ +\x76\x34\x87\x5a\x9b\xfd\xf8\xa6\x7d\x19\x34\x94\x7e\x84\x59\xff\ +\xc5\x24\x07\xfc\xb3\xf5\x14\x74\x53\x27\xaf\xf8\x3a\x9e\x92\xf4\ +\x54\x84\x07\x47\xc0\xd7\xc7\xaf\xd9\x32\x9c\xef\x8f\xc3\x91\x27\ +\x84\xbd\x95\x93\x36\xdf\x13\x8b\xef\x95\x93\x79\x1d\x80\x5f\x85\ +\x4b\xbf\x3c\xc6\xe5\x5f\x1e\xe0\x50\x7a\x16\xe6\xb8\xce\x27\xc2\ +\xb6\x2d\x7a\x00\x1b\xd3\x18\x00\xbb\x3b\x57\x8b\x63\xc7\x8e\x15\ +\x6f\x40\x31\x39\x4a\x00\x4c\x8c\xcd\xa1\xab\x6b\x42\x00\x78\x15\ +\x60\x00\x86\xd4\x11\x6e\xa6\x5a\xff\x38\x62\x77\x6f\x80\x72\xc7\ +\x1e\xe8\xd8\x76\x1f\xbe\x55\x2d\x41\xdb\x36\x59\x58\x12\x92\x88\ +\x0d\x5b\x23\xf0\x5f\x7f\xb7\x44\x37\xd5\xf3\x50\xfa\xfa\x00\x15\ +\x43\x93\xa9\xea\x0b\x85\xcf\x8a\x8f\x49\x56\x32\x9e\x61\xf0\x3d\ +\x4e\x9a\x34\x09\x23\x46\x8c\xc0\xc8\x91\x23\x45\xef\x9b\x3e\x7d\ +\x3a\x26\x4e\x9c\x88\x71\x54\x22\x4b\xa1\x2c\xe6\x80\x73\x37\xef\ +\x0b\x97\xef\x66\xe3\xca\x9d\x47\x48\xcc\x38\x05\x97\x39\xf3\xa8\ +\xa1\xb0\x17\x01\x48\x75\x00\x8b\x57\x01\x47\x47\x47\xf1\x8b\x6c\ +\x9c\xb4\x14\x2a\x8a\x0d\xe5\xe5\x8e\x7f\x84\x8d\x95\x00\x70\xa8\ +\x30\x00\xf6\x1c\x53\x13\xb3\xda\x24\x68\x60\x42\x21\xa0\x89\xc1\ +\xc3\x0d\x61\xc2\x75\x80\xf2\x09\x5a\xfb\xd7\xa1\x7d\xbb\x18\x68\ +\x74\xbe\x0e\x65\xb5\xdb\x94\x0b\x7e\x46\xa7\x6f\xe3\xa0\xad\xb9\ +\x14\xca\x1d\x36\xe0\x1b\xd5\x27\x68\xff\xaf\x04\xd8\x0c\x1a\x87\ +\xe0\x90\x8f\x09\x56\x7a\x38\x23\x89\x3d\x80\x27\x89\x7f\x9b\x7f\ +\x93\x1f\xc6\xf0\xfd\x72\x22\x66\xf1\x3d\xb2\x1d\x74\xae\x5c\xf6\ +\xfd\xad\x47\x22\x80\xab\x77\x1f\x21\xf9\xe4\x39\xcc\x9b\xbf\x50\ +\x7c\x04\xde\x18\x80\xb9\xb9\x39\x66\xcc\x98\x21\xc6\x16\x1b\xd7\ +\x14\x00\xfe\xc1\x99\x33\x67\x8a\x0f\x50\xf9\xb8\x94\x23\x1a\x02\ +\xe0\x65\x50\x87\x3c\xc0\xa8\x16\x00\xe5\x00\x53\xd3\x5d\x64\xf8\ +\x03\xa8\x29\x3d\x45\x27\xf5\x02\x28\x75\x7c\x04\x25\xb5\xab\xe8\ +\xa2\xfe\x0c\x9d\x94\x1e\x41\x43\xe5\x36\xad\x06\x77\xa1\xde\xb1\ +\x00\x6d\xbf\x8e\x85\xcd\x40\x02\x10\x1c\x48\x86\xfb\x34\x09\x40\ +\xfa\xcc\x46\xf2\xfd\x4a\xdb\x1c\xfb\x8a\x4f\xac\xe8\x3c\xb9\xec\ +\xfc\x4f\x8f\x84\x2b\xbf\x66\xe3\x1a\x01\x48\x3b\x7d\x01\x0b\xdc\ +\x16\xd5\xe7\x00\x45\x00\xbc\x0a\xb0\x1b\xf1\x05\x18\x80\x54\x0d\ +\x2a\x8a\x0d\x65\xc3\xa7\x4e\x9d\x2a\x7a\x89\xe2\xfe\x06\x00\x0c\ +\xb4\xa0\x6b\xa8\x0d\x4d\x4d\x1d\x0c\x1c\x6a\x0e\x53\xb3\x3d\xe8\ +\xd0\xfe\x02\x5a\xfd\x73\x27\x2d\x79\xc7\xd0\x91\x0c\xee\xa8\x74\ +\x1b\xdd\xda\xe6\x43\xbd\xd5\x0d\xb4\x69\x9d\x85\x8e\x9d\x7f\xa0\ +\x32\xb9\x10\xad\x5a\xc7\x88\x00\x42\x02\x57\x62\xc5\x72\xdf\x26\ +\x01\x28\x16\x61\xd2\x71\x0e\x0f\xc5\xa7\x58\x0c\x41\x04\x70\xf1\ +\xa7\xfb\xc2\x8f\xf7\xb2\x71\xe3\xd7\xc7\xc8\x3c\xf7\x03\x01\x70\ +\x17\x3d\x40\x71\x19\x64\x71\x0e\x60\xc3\x18\x00\x1b\xc2\xb1\xce\ +\xb3\xcb\x09\x46\x92\x94\x60\xf8\x87\x24\xe3\x1b\x7b\x80\x09\xf7\ +\x02\x7a\xfc\x18\xac\x1b\xba\x6b\xe9\xc3\x6a\x78\x6f\xe8\x19\x47\ +\x43\x4f\x2b\x12\xc3\x87\xd8\xa3\x75\x7b\x0b\x74\xe8\x90\x40\x4b\ +\xdf\x23\xa8\xb7\xce\x85\x6e\xf7\xd5\xd4\x33\x58\xe3\xab\x76\x53\ +\xa0\xa6\xf2\x12\xad\xbe\x8a\xa7\x10\x18\x8d\x30\x6a\x7e\x56\xac\ +\xf8\x68\x60\x73\x52\xec\x50\x15\x0b\x33\xb6\x83\xee\x53\x2e\xbb\ +\x74\xfb\x81\x70\xfd\x7e\x0e\x6e\xdd\xcf\x46\xd6\xc5\x2b\x58\xe4\ +\xe1\x89\xc1\x83\x06\x35\x78\x2e\x28\xe5\x80\x29\x53\xa6\x88\x17\ +\xe1\x76\xb8\x29\x00\x8d\xc5\x40\x24\x08\xb5\x00\x16\xd6\x02\xd0\ +\xe5\x37\xc3\x5a\xd0\xd4\xd3\x80\xcd\x58\x5d\x74\xd7\x5e\x89\x41\ +\x56\x19\x38\x74\x60\x07\x3a\x6a\xf4\x44\xab\x7f\xed\x14\x5d\x5f\ +\x99\xfa\x80\xa0\xd0\xbd\xd8\x14\x1d\x84\xbf\xfd\xc3\x08\x9d\x95\ +\xaf\xa1\xdd\x57\xdb\xc9\x43\xc7\x20\x3c\x20\x88\x0c\xf8\xb4\x17\ +\x69\xaa\x37\x69\x4a\x75\x1e\x21\x97\x5d\xb9\xfb\x48\xb8\xf9\x20\ +\x17\x3f\x3d\xc8\xc1\xd9\x2b\xd7\xb1\x88\xea\x75\x07\x87\x21\xe2\ +\x8c\x2b\x02\xe0\x10\x98\x3c\x79\xb2\x48\x4f\x02\xc0\xc6\x7d\x0e\ +\x80\xa2\x57\x7c\xf4\x00\x73\xd1\x03\x0c\xf4\x8d\xa0\xa9\xa3\x42\ +\x1e\xf0\x2d\x15\x47\xdb\xd0\xa9\xcd\x19\x68\x76\x0d\xa0\x5c\x10\ +\x01\x75\xea\xfc\x54\xa9\xf3\x53\x6a\xfb\x23\x7a\xf4\xda\x0a\x73\ +\xd3\x45\x68\xd3\x6a\x39\xba\xaa\x64\xa3\xf5\x3f\x77\x61\x80\xed\ +\x14\xf1\x75\xdc\xb2\x65\x9f\xf6\x22\x4d\xf5\x26\x4d\xa9\xae\x48\ +\x93\xcb\xae\xdf\xcf\x16\x6e\x67\x3f\x13\x01\x9c\xbf\x7e\x4b\xcc\ +\x01\xc3\x86\x0e\xfd\xe4\xc9\x30\x27\x41\x5e\x46\x24\x0f\xe0\xf5\ +\x9e\x0d\xe4\x06\x47\x92\x64\x30\xab\x31\x04\x7e\xe5\xc6\x99\xd9\ +\xc4\xb4\x07\xad\x00\x5a\xd0\xd7\x33\xa1\x65\xb0\x3b\x6c\x86\x98\ +\xc3\x44\x8f\x4a\xe0\xbf\x5f\xa0\x22\xe7\x47\x28\xb5\xf9\x99\xca\ +\xdd\x5b\x68\x4f\x35\x40\xbb\x36\x39\xd4\x21\xfe\x0a\x95\x7f\x9d\ +\xa6\x9a\xe0\x36\x54\xdb\xbe\xc4\xff\xfc\x63\x0b\x2c\xec\x1d\xe1\ +\x13\xe2\x4f\x06\x2e\xfd\x8f\x8c\x6e\x1a\xc0\x83\x1c\xe1\x97\x9c\ +\x17\xb8\xfd\xf0\x09\x2e\xdf\xbe\x03\x37\x77\x0f\x0c\x75\x70\x10\ +\x5d\x5e\x11\x80\x99\x99\x99\x58\xe3\x4b\x1e\x20\x01\xe0\x64\x27\ +\xa9\x31\x8c\x4f\x01\xb0\x07\xf4\x27\x00\xda\xe4\x01\x94\x07\x74\ +\x8c\x61\x64\xac\x83\x1e\xe6\x33\x30\x78\xe0\x56\x0c\xb0\x8e\x86\ +\x95\xd5\x26\xf4\xb7\x0a\x84\x79\x3f\x6f\xca\x0d\x01\xd0\xee\xbe\ +\x0d\x7a\xdd\xf6\x40\xab\x6b\x0c\xb4\xba\xed\x85\x9a\xaa\x2b\x86\ +\x8e\x9c\x06\x9f\x00\x5e\x5e\x97\x34\x28\xc5\x25\xb5\xe4\x15\xac\ +\x8f\x00\x1e\xe5\x08\x77\x72\x5f\xe0\x97\xc7\x4f\x71\xed\xce\x3d\ +\xb8\x7b\x7a\xc1\x61\xc8\x10\xd1\xe5\x15\x5f\x8f\x99\x9a\x9a\xe2\ +\xbb\xef\xbe\x13\xe3\x87\x33\xbd\x04\x80\x57\x04\x49\x8d\x61\x34\ +\x00\xe0\xec\x24\xe6\x00\x63\x63\x2b\x68\xeb\xe9\x41\x9f\x96\x42\ +\x03\x5d\x53\x7c\xab\xa9\x01\x4b\xbb\x3e\xf0\x5c\xba\x10\x0b\xdd\ +\x9c\xb1\x70\x01\x81\x5a\x30\x8f\xc4\xd7\x9e\x0f\x77\x0f\xda\xbf\ +\x80\xaa\x3a\x57\x2f\x2c\x98\xe7\x83\xf9\x73\x29\xa4\x3c\xdd\xe1\ +\xb3\xc4\xa3\x3e\xc1\x2a\xd6\x1b\xd2\xe7\xa6\xf6\x4b\xe7\xb3\xea\ +\x73\xc0\xcd\x47\x8f\x84\x7b\x4f\x9f\xe2\x97\xec\x5c\x5c\xbf\xfb\ +\x40\x5c\x05\xd8\x03\x1a\x87\x80\xe4\x01\x4c\x4e\x11\x80\xa2\xd1\ +\xcd\x89\xcf\xe3\x22\x8a\x97\x4e\x53\x33\x73\xb1\x1d\x16\x5f\x89\ +\x1b\x18\xa0\x4b\xb7\xce\x70\x9e\x33\x0b\x49\xc9\x87\xb1\x2f\x6e\ +\x2f\xe2\xf6\xc6\x52\x45\xc8\xda\x8b\x1d\xdb\xb7\x63\xd3\xa6\x0d\ +\x58\xbb\x36\x02\xab\x57\x87\x21\x3c\x3c\x04\x11\xe1\xd4\xc7\x07\ +\x50\x06\x27\xc3\xf8\xba\x52\xa1\xe3\xea\x3a\x4f\xbc\x3e\x7b\x27\ +\x8f\x2c\xce\x53\xdc\x86\x73\xe1\xc3\xdb\x7c\x8c\xc3\x90\x27\x87\ +\x21\xd0\xc4\xc8\x65\xb7\x09\xc0\xfd\x67\xcf\x70\x27\xf7\x09\xe5\ +\x81\x6c\x0a\x01\x4f\x0c\x1f\x3e\xbc\x41\x12\x94\x00\x48\x1e\xc0\ +\x3f\xc8\x49\x8d\x2f\xd4\x9c\x07\x34\x07\xc0\xcc\xdc\x54\x7c\x31\ +\x62\x68\x6c\x54\xff\x52\xc4\x61\xf8\x30\x4c\x9b\xce\x4f\x80\x9d\ +\xc4\x1b\xe5\xeb\xf2\xef\x70\xc3\xc2\x2f\x62\x22\x23\x23\x11\x1d\ +\x1d\x8d\x9d\x3b\x77\x62\xdf\xbe\x7d\x88\x8f\x8f\xc7\xa1\x43\x87\ +\x90\x74\xe4\x08\x92\x93\x92\x90\x9c\x9c\x8c\xb4\xb4\x34\x1c\x3b\ +\x76\x0c\xa9\xa9\xa9\x48\x49\x49\x11\x8f\xf3\x79\x71\x71\x71\x88\ +\x8d\x8d\x45\x4c\x4c\x0c\xb6\x6e\xdd\x8a\x0d\x1b\x36\x88\x4f\xb6\ +\xb9\x28\x12\x3d\xe0\x6e\x76\x8e\xf0\xf0\xc5\x0b\xfc\xfa\xe4\x29\ +\xee\xe6\x3c\x83\x87\x97\xb7\x58\x3f\x73\x08\x28\x02\xe0\x10\xe0\ +\x12\x77\x79\x5d\xbd\xcf\xf5\x34\x1b\xc7\x44\x25\x35\x07\x41\x11\ +\x80\x09\x5d\x87\x1f\x87\xb3\xe1\xfd\x2c\xfa\x63\xec\x77\xe3\x30\ +\x72\xf4\x28\x0c\x1b\x31\x5c\xd4\x88\x51\x23\x61\x47\xa5\x78\x6f\ +\x2a\xc4\xf8\x7d\x81\x19\xdd\x87\x99\x59\x4f\xf4\xe9\xdb\x1f\x96\ +\x56\xd6\xb0\xb0\xb4\xa6\x71\x00\xac\x07\xd8\x52\xff\x60\x8f\x41\ +\x43\x1c\x30\x62\xe4\x68\x4c\x9c\x34\x19\x53\xa7\xcd\xc0\x4c\x82\ +\x38\x97\xbc\xc1\xc3\xcb\x13\xcb\x19\x62\x68\x08\xd6\xac\x5b\x8b\ +\x4d\x9b\xa3\xb0\x7d\xe7\x0e\xec\xde\x13\x8b\xfd\x07\xe2\x91\x9c\ +\x72\x94\x25\x97\xdd\xcb\x7d\x2e\x3c\xca\xcf\x13\x01\xdc\x7b\xf2\ +\x82\xbe\xb8\x98\x3c\x60\x58\x93\x39\x60\xf4\xe8\xd1\xa2\xeb\xb0\ +\x21\x52\x73\xa3\x08\xa0\x39\x18\x3c\xa3\x5c\x22\xb3\xe7\x18\x53\ +\x37\xc8\x2f\x46\xd8\x0b\xf8\xc5\x48\x9f\x7e\x7d\x45\x10\xd2\xbf\ +\xe3\xf4\x25\x4d\x9f\xe5\x88\xa5\x3e\x2b\xe0\xee\x4d\x2e\x4e\xdf\ +\x9d\xb7\xd0\x1d\x33\x66\xb9\x60\xdc\x84\xc9\x18\x3e\x7a\x1c\x46\ +\x8c\xf9\xae\x7e\x1c\x3c\x74\x04\x6c\x07\x39\xc0\xd2\xc6\x0e\xfd\ +\xad\xa9\x89\xb3\xb0\x42\x2f\xba\x66\x1f\xba\x66\x3f\xba\x26\x8f\ +\x3d\xfa\xf4\x86\x59\xaf\x9e\x30\x27\xf1\x76\xcf\xbe\x7d\xc4\x63\ +\x96\x03\xac\xe4\xb2\xfb\xcf\x5f\x08\xd9\x2f\xf3\x71\xef\xe9\x33\ +\x3c\x78\x96\x5f\x0b\x60\xd8\x5f\x0b\x40\xa7\xee\xbd\x00\x43\x60\ +\x6f\xd0\xd1\xd5\xa5\x9a\x40\x1b\xdd\xf5\x74\xd0\x5a\xa9\x3d\x22\ +\xa3\x37\x43\x5e\x51\x86\x87\xb9\xd9\xb8\xfb\xf0\x21\x6e\x51\x72\ +\xbe\x7a\xf3\x36\x7e\xb8\x7a\x03\xdf\x5f\xba\x8a\xac\xb3\x17\x90\ +\x71\xf2\x0c\x0e\xa7\xa4\x23\x2e\x21\x11\xdb\x77\xc7\x21\x6a\xeb\ +\x4e\x6c\xdc\xbc\x0d\x6b\x36\x46\x21\x6c\xf5\x2a\x2c\xf3\xf3\xc5\ +\x7c\x77\x37\xb8\xb8\xce\x85\xf3\xbc\x39\x70\x9a\x3b\x1b\x33\x5d\ +\x9c\x30\x71\xda\x14\x8c\x1c\x37\x16\xc3\x46\x8f\xc4\x90\xe1\xc3\ +\xe4\xb2\x07\x2f\xf2\x84\x9c\x82\x02\xdc\x7f\xf6\x1c\x0f\x5f\xbc\ +\x84\xa7\xf7\x9f\xe3\x01\x8a\x62\x08\x4d\x01\x90\x24\x82\xa0\x7d\ +\xda\xb4\xad\xa4\xae\x8a\x8d\x5b\x36\xa3\xb8\xbc\x14\x8f\x9f\x3f\ +\x45\xf6\xf3\xe7\x78\x92\xf7\x0a\xb9\x24\x1e\x9f\xbd\x2c\xc2\xd3\ +\xfc\x42\x3c\xa5\x31\xaf\x50\x8e\xe7\x05\xc5\x78\xfe\xaa\x04\x2f\ +\x68\xfb\x05\x8d\x7c\x3c\xe7\xc5\x73\x3c\x7a\xfa\x04\xf7\x73\xb2\ +\x71\x2f\xfb\x31\x7e\xbe\x7f\x0f\xd7\x7f\xbe\x8d\xcb\x37\xae\xe3\ +\xdc\xa5\x8b\x38\x7e\xe6\x34\x32\x4f\x9f\x22\x80\x14\x02\x8f\xf2\ +\xf2\x85\xdc\xc2\x57\x64\x7c\x3e\xb2\x5f\x16\x62\xb9\x8f\x1f\x46\ +\x52\x1f\xcd\x49\x8f\x9f\x03\xf0\xe3\x30\x1e\xf9\x33\x3f\xea\xe2\ +\xa5\x84\x0d\xe1\x98\x66\xe3\x38\xb3\x4a\xe2\x8c\x2c\xa9\x31\x00\ +\xee\x24\x39\x23\x9b\x9a\x99\x52\x33\xa4\x27\xbe\x1d\x66\x29\x42\ +\xe0\xcf\xca\x6a\xaa\x88\xdc\x1c\x8d\xe2\xb2\x0a\x02\x90\x87\x87\ +\xcf\xf2\xf0\x88\xf5\x3c\xbf\x81\x1e\x4a\xfb\x9e\xe5\xd7\x1e\xaf\ +\xfb\xfc\xf8\x45\x7e\xfd\x98\x9d\xf7\x12\x39\x79\x05\xa2\x72\x5f\ +\x12\xc0\x82\x22\x3c\x2b\x24\x58\xc5\x02\x8a\x2a\xaa\x08\x5a\x09\ +\x03\x78\x29\x3c\x29\x2a\xc4\xe3\xfc\x7c\xe4\xbe\x2a\x46\x50\x48\ +\xa8\x18\x02\x6c\x30\xcf\xbe\x04\xc0\x84\x66\x8e\x93\x23\xaf\xe9\ +\xbf\x07\x80\xa2\xd8\x53\x7e\x2f\x00\x15\x06\x10\xbd\x05\x25\xe5\ +\x55\xc8\x26\x8f\x7c\xfc\x17\x89\x41\xd0\x48\x00\xf2\x0b\x84\xa7\ +\xc5\x45\x34\xfb\x05\x78\x56\x24\x20\x62\xd5\x6a\xea\x05\x1c\xc4\ +\xd2\x57\x7a\x31\x2a\x01\xe0\x27\x2c\x9c\xd1\x79\x15\xe0\xa7\x43\ +\x9f\x03\xa0\xb8\xff\x4b\x00\xc8\x2b\xaa\xc5\x99\xcb\xfe\x8b\xf4\ +\xbc\x48\x8e\xc7\x79\x05\x72\x59\x76\x41\xa1\x90\x27\xc8\x91\x53\ +\x50\x88\x3c\x79\xb9\x08\x80\x0b\x21\xce\x01\x8d\x43\x60\x18\x79\ +\x06\x03\xe0\x42\x88\x3d\x80\x8d\xe3\xed\xa6\xa4\x08\x84\x41\x31\ +\x00\x7e\x1a\x63\x66\x6e\x2e\xbe\x1c\x6d\x0c\xa0\xf6\x1f\xa5\x6a\ +\x01\x44\x6d\xdd\x8e\xd2\xaa\xd7\x78\x42\x21\x99\xfb\x05\xca\xc9\ +\x7f\x55\xaf\xe6\xce\xc9\x2b\xa1\x1c\xf3\xb2\x50\x2e\xcb\x29\x2c\ +\x14\xf2\xcb\x4a\xc9\xfd\x0b\x91\x5f\x5a\x81\xd5\x6b\xd7\xd5\x27\ +\xc1\x3f\x0a\x40\xd1\x33\x5a\x02\x20\xfd\xdb\x4c\x07\x15\x65\xac\ +\x8b\x8c\x42\x79\xcd\x5b\x3c\xa5\x90\x7c\xf2\x25\xa2\x58\xaf\x57\ +\x33\xe7\xe4\x0b\xe5\xc8\x79\x45\x00\x72\x0b\x8b\x84\x97\x65\x65\ +\x78\x52\x58\x84\x57\x65\x55\x58\xbf\x31\x12\xa3\xea\x0a\x21\x36\ +\x5e\x11\x80\x14\x02\xbc\x0a\x28\xe6\x80\x05\x0b\xc9\xe8\x46\x30\ +\xe6\xd7\x6f\x7f\x1e\x80\x04\xc1\x40\x7c\x55\xde\x1d\xaa\x1a\xea\ +\x48\x4c\x4e\x81\x50\x59\x83\x67\x74\xa3\x4f\xbf\x40\xcf\x29\xbe\ +\x25\x35\x77\xce\x4b\x02\x90\xcb\x00\xc8\x70\xe1\x55\x99\x80\xfc\ +\xa2\x62\xc8\xcb\x6b\xb0\x99\xd6\x52\xfe\xef\x89\x9e\x3d\x7b\x93\ +\xf1\xec\x01\x5c\x0d\x5a\x41\xdf\xc0\x50\xac\xc6\x5c\x5c\xe6\x60\ +\xce\xdc\x79\x54\x15\x8e\xc7\xa4\x49\x53\x30\x79\xea\x34\x4c\xa5\ +\x25\x6e\xba\xe3\x2c\x2a\x56\x9c\x30\xd3\xc9\x19\xce\xb3\xe7\x50\ +\x7d\xef\x8a\xd9\xae\x6e\x98\x3b\x9f\x6a\xf5\x05\x6e\xe2\xe3\x34\ +\x5e\x3a\xcd\xcc\x7b\x88\xaf\xc7\x0d\x0c\x8d\x49\x46\x04\xa0\x76\ +\x54\xd3\xe8\x0c\x13\xf3\xde\x48\x39\x76\x9c\xee\xa3\x1a\x79\xb4\ +\xa4\xe5\x15\x94\xd4\x8e\x2d\x6d\x17\x34\xde\x2f\x57\x50\xd3\xdf\ +\x29\x12\x2a\x68\x24\x00\xcf\x8b\x8a\x84\x22\x5a\x73\x0b\x4a\x4a\ +\x50\x56\xf9\x06\xd1\x5b\xb6\x13\x80\xe1\xd4\x0c\xf5\xa5\x99\xe7\ +\xf5\xdf\x9c\x3a\x37\x43\x8c\x9f\x30\x09\x7b\xf7\xc5\xe3\xca\xb5\ +\xeb\xb8\xfd\xcb\x1d\x5c\xbc\x7c\x15\x27\xb2\x4e\x23\x2d\xf3\x38\ +\x12\x8e\x24\x61\x7b\xcc\x6e\xac\x5a\xb7\x1e\x01\xb4\x8a\xf8\x53\ +\x0d\xbf\xcc\x37\x00\xf3\x16\x79\x51\xf1\x41\x85\xc8\x9c\x79\xe2\ +\xc3\x14\x17\x17\x67\x98\x93\x67\xe9\xea\xd5\x02\xd0\x37\xa0\x7e\ +\x40\x5b\x17\xaa\x6a\x1a\x70\xa4\x4a\xef\x51\xf6\x53\x54\xbf\xf9\ +\x0d\x05\x45\xa5\xc8\xa7\x9b\x67\xbd\xac\xd3\xe7\xb6\xf3\x1b\x6d\ +\xe7\x37\xda\xdf\xd4\x77\x8a\x85\x4a\x1a\x8b\xe5\xb2\xbc\xe2\x12\ +\xa1\x98\xaa\xae\x02\xb9\x80\x8a\x9a\x77\xd8\x14\xb5\x45\xfc\x3f\ +\x1a\x23\x23\x2a\x58\x74\xf4\xc4\xfa\x3a\x2d\x2d\x1d\x45\x74\xbc\ +\xea\xcd\x5b\x4a\x4e\x55\xb4\x44\x55\xa0\xac\xaa\x9a\xce\x7f\x8d\ +\xf2\xea\x9a\x7a\x55\xbe\x7e\x83\xd2\xca\x2a\xbc\x2a\x91\x53\x41\ +\x42\x4b\xeb\xd3\x7c\xdc\x7d\xf0\x18\xf7\x1e\x66\x53\x23\xb2\x0d\ +\x53\xa7\x4e\x21\xcf\xea\x25\x02\x30\xa4\xeb\x77\xe9\xfa\x8d\x08\ +\x20\x2a\x2a\x1a\x55\x14\xf3\xa5\x15\x35\x74\x53\x25\x22\x80\xbf\ +\x5a\xf2\xb2\x6a\x90\x03\xc8\x65\x2f\xe5\x82\x20\x54\x55\xa2\x50\ +\x28\x25\x03\x3f\x60\x67\xec\x5e\xd8\x0d\x1e\x4c\x75\xf7\x24\xa4\ +\xa4\x67\x88\x86\xbe\xfd\xf0\x1b\x15\x26\x65\x78\x45\x10\x0a\x4b\ +\x4b\x69\x94\x13\x30\xb9\xf8\x99\x8d\x6d\xac\x42\x3e\x8f\x62\xac\ +\xa8\xb4\x8a\xdc\xb9\x0a\xbf\x01\x62\x97\x36\x79\xd2\x24\xf4\xa2\ +\x36\x5b\x9b\xc0\x2a\xab\xa8\xc2\x61\xe8\x70\x5c\xbf\x71\x0b\xef\ +\xe9\xfa\x25\x74\xfe\xab\xe2\x32\x14\x96\xd4\x8e\x7f\x44\x7c\x0d\ +\x49\xcd\x9d\x23\x50\xb8\xbf\x2a\x14\x08\x80\x50\x2e\x94\xd6\x54\ +\xa1\x88\x0c\x2c\xa1\x24\x58\x54\x5a\x8e\x27\x2f\xf2\x68\x2c\x45\ +\xcd\xfb\x0f\x64\x78\xb9\x68\x70\x51\x39\x5d\xb8\xac\x4e\xe5\x1f\ +\x55\x5c\xfa\x51\x45\x04\x51\x12\x03\x28\xa4\x38\x2b\xa2\xf1\xed\ +\xfb\xdf\x90\x94\x94\x2c\xbe\x31\xd2\xd3\x37\x40\x47\x55\x75\xf8\ +\xf8\xfa\x41\xa0\xdf\x7a\x47\xc7\x04\xa1\x4c\x04\xc0\x6e\x29\xa9\ +\x48\x5e\xf1\xc5\xfa\x3d\xd7\xe1\x70\x2f\x2c\xae\x90\xcb\x0a\xcb\ +\xcb\x85\xf2\x37\x35\x54\x78\x54\x92\x5b\x54\x8a\x63\x69\x75\x35\ +\xe4\x95\x95\xe4\xea\xe5\x34\x83\x15\xa2\x8a\x2b\xe8\x8b\x95\x9f\ +\xaa\xa4\xa2\xa2\xfe\x9c\x12\x82\x25\xa9\x98\xae\x55\x4c\x40\x4b\ +\x68\x7c\x43\x46\x9e\x3c\x99\x85\x89\x13\x26\xc0\xde\x7e\x20\x8e\ +\xa6\xa4\x81\xff\xca\xa9\x1c\x2d\xa5\x92\x97\x41\x94\x92\xa7\xb0\ +\x5b\x4a\x2a\x21\xef\xf9\x52\xfd\x9e\xeb\x54\x54\xbf\x23\x4f\xad\ +\x92\xcb\x8a\x2b\x8b\x85\x8a\x1a\x9a\x85\xb2\xb7\x10\x2a\x5e\xa1\ +\xa4\x92\xdc\xba\x82\x5c\xb8\xaa\x18\x65\x15\x72\xd4\x94\x56\xa2\ +\x46\xfe\x1a\x65\x7c\xc1\x8a\x5a\x40\x02\xc1\x11\x28\x17\x08\x14\ +\xef\x65\x15\x9f\x53\xb5\x38\x4a\x86\xe6\x52\xcb\x5d\xf0\xaa\x08\ +\xff\x26\xe3\x2b\x2a\xe9\x58\x79\xa5\xa8\x72\x71\xa4\x73\x68\x64\ +\x10\xbc\xad\xf8\xfd\x96\xb7\x9b\xfa\x5c\xdd\xe8\x58\xc3\x73\x6a\ +\xde\xbc\x27\x7b\x09\x00\x41\x10\xde\xd2\x87\x0a\xe1\x2d\x5e\x57\ +\x7e\x40\x29\x25\xc2\x82\xea\x4a\xbc\x7c\x4d\x20\x6a\x28\x9e\xab\ +\x29\x04\xaa\x5f\x93\x47\x54\x53\x92\x22\xc3\xd9\x43\xd8\x70\xca\ +\x0d\xac\x72\xda\x5f\xd1\x92\xe8\x47\x2b\xab\x6a\xf0\xfa\xcd\x3b\ +\xd4\xbc\x7e\x2b\x02\x69\x7c\x0e\xef\xab\x07\x42\xbf\xd1\xe2\x35\ +\x5b\xd4\xa7\xbf\xa1\xa8\x37\x6f\xdf\xf3\x28\x97\x95\x57\xd1\x54\ +\xe2\x0d\x38\x53\xdd\xb8\x2e\xc7\xd3\xe7\xaf\xf1\xef\x0f\xc0\xfb\ +\x37\xff\xc6\xeb\x77\xef\x50\xf1\xe1\x2d\x2a\x3f\xbc\x43\xf5\xbb\ +\xf7\xa8\xa9\xd3\x6b\xca\x0d\x92\xde\xbc\xfb\x80\xb7\x7f\x92\xf8\ +\xa6\x24\xb5\x74\xee\x1f\x15\x6a\xbd\xb0\x52\x56\x55\xf5\x26\xf7\ +\xc3\x87\x0a\xe1\xcd\x6f\xbf\x09\x61\x1b\x4f\x0b\xa9\x17\x6f\x0b\ +\xef\x3f\xbc\x17\xde\x0b\x35\xc2\x9b\xca\x1a\x2a\xc8\xaa\x68\xac\ +\x14\xaa\xab\xaa\x04\x5a\xea\x3e\x51\x45\x15\x9d\xf3\xff\x50\x6f\ +\xde\x7e\xa0\x7b\xaf\xca\xfd\x5f\x39\x8f\xbf\x4e\xda\x91\x8c\x6d\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\x3c\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ +\xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\ +\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x00\xdc\x49\x44\x41\x54\x78\ +\x5e\xed\x9b\x31\x0a\xc5\x40\x14\x02\xbd\xff\xa1\x93\x1f\x08\xfe\ +\x5a\x30\x09\x16\x23\x8c\xd5\x16\xeb\xf4\x4f\x92\xce\x51\x8e\xe0\ +\xcd\x13\xdc\x35\x98\xeb\x5f\xe7\xcb\x20\x00\x01\x72\x0d\x26\x18\ +\xd0\x82\x00\x04\xc8\x35\x98\x60\x40\x0b\x02\x10\x20\xd7\x60\x82\ +\x01\x2d\x08\x40\x80\x5c\x83\x09\x06\xb4\x20\x00\x01\x72\x0d\x26\ +\x18\xd0\x82\x00\x04\xc8\x35\x98\x60\x40\x0b\x02\x10\x20\xd7\x60\ +\x82\x01\x2d\x08\x40\x80\x5c\x83\x09\x06\xb4\x20\x00\x01\x72\x0d\ +\x26\x18\xd0\x82\x00\x04\xc8\x35\x98\x60\x40\x0b\x02\x10\x20\xd7\ +\x60\x82\x01\x2d\x08\x40\x80\x5c\x83\x09\x06\xb4\x20\x00\x01\x72\ +\x0d\x26\x18\xd0\x82\x00\x04\xc8\x35\x98\x60\x40\x0b\x02\x10\x20\ +\xd7\x60\x82\x01\x2d\x08\x40\x80\x5c\x83\x09\x06\xb4\x20\x00\x01\ +\x72\x0d\x26\x18\xd0\x82\x00\x04\xc8\x35\x98\x60\x40\x0b\x02\x10\ +\x20\xd7\x60\x82\x01\x2d\x08\x40\x80\x5c\x83\x09\x06\xb4\x20\xe0\ +\x2f\x60\x91\x4f\xce\xe7\x7f\x8e\x88\xcd\xd9\x93\x86\x7d\xc7\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +" + +qt_resource_name = "\ +\x00\x09\ +\x0c\x78\x54\x88\ +\x00\x6e\ +\x00\x65\x00\x77\x00\x50\x00\x72\x00\x65\x00\x66\x00\x69\x00\x78\ +\x00\x06\ +\x07\x03\x7d\xc3\ +\x00\x69\ +\x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ +\x00\x0e\ +\x04\xfb\x01\x67\ +\x00\x72\ +\x00\x6f\x00\x74\x00\x61\x00\x74\x00\x65\x00\x2d\x00\x63\x00\x63\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0e\ +\x0e\xf6\xf7\x07\ +\x00\x7a\ +\x00\x6f\x00\x6f\x00\x6d\x00\x5f\x00\x69\x00\x6e\x00\x5f\x00\x30\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x08\xc8\x58\x67\ +\x00\x73\ +\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x09\ +\x07\xc7\xb7\xe7\ +\x00\x69\ +\x00\x6e\x00\x70\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0f\ +\x0e\x5e\x8b\x87\ +\x00\x7a\ +\x00\x6f\x00\x6f\x00\x6d\x00\x5f\x00\x6f\x00\x75\x00\x74\x00\x5f\x00\x30\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x05\xe2\x5f\x07\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x6a\x00\x70\x00\x67\ +\x00\x08\ +\x0b\x80\x5c\x67\ +\x00\x62\ +\x00\x65\x00\x61\x00\x6d\x00\x2e\x00\x6a\x00\x70\x00\x67\ +\x00\x0d\ +\x01\xb0\xf0\x47\ +\x00\x64\ +\x00\x6f\x00\x77\x00\x6e\x00\x6c\x00\x6f\x00\x61\x00\x64\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x09\ +\x08\x05\x80\x07\ +\x00\x62\ +\x00\x65\x00\x61\x00\x6d\x00\x32\x00\x2e\x00\x6a\x00\x70\x00\x67\ +\x00\x0d\ +\x01\x7f\x42\x27\ +\x00\x72\ +\x00\x6f\x00\x74\x00\x61\x00\x74\x00\x65\x00\x2d\x00\x63\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0b\ +\x0a\xb8\x4e\xa7\ +\x00\x66\ +\x00\x61\x00\x76\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0a\ +\x07\xc9\x8e\x27\ +\x00\x6f\ +\x00\x75\x00\x74\x00\x70\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +" + +qt_resource_struct = "\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x18\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x03\ +\x00\x00\x01\x24\x00\x00\x00\x00\x00\x01\x00\x00\xae\xa1\ +\x00\x00\x00\xec\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x8b\ +\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x69\x5d\ +\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xd9\ +\x00\x00\x01\x60\x00\x00\x00\x00\x00\x01\x00\x00\xce\xc2\ +\x00\x00\x01\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x83\xe3\ +\x00\x00\x01\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x99\x42\ +\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x97\ +\x00\x00\x01\x44\x00\x00\x00\x00\x00\x01\x00\x00\xb1\x71\ +\x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x73\xcd\ +\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x3e\x16\ +\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x02\xe4\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/Connections/Shear/Finplate/internal/osdag.txt b/Connections/Shear/Finplate/internal/osdag.txt new file mode 100644 index 0000000..86b38d0 --- /dev/null +++ b/Connections/Shear/Finplate/internal/osdag.txt @@ -0,0 +1 @@ +recentfile: /home/deepa/pinu diff --git a/Connections/Shear/Finplate/log.css b/Connections/Shear/Finplate/log.css new file mode 100644 index 0000000..098dafd --- /dev/null +++ b/Connections/Shear/Finplate/log.css @@ -0,0 +1,30 @@ +.INFO { + color: green; +} + +.WARNING { + color: orange; +} + + +.ERROR { + color: red; +} + + +.DEBUG { + color: blue; +} + + +.LOG span { + margin-right: 1em; +} + +.LOG { + clear:left; +} + +.DATE { + /*display:none;*/ +} diff --git a/Connections/Shear/Finplate/model.py b/Connections/Shear/Finplate/model.py new file mode 100644 index 0000000..fdd0141 --- /dev/null +++ b/Connections/Shear/Finplate/model.py @@ -0,0 +1,125 @@ +''' +Created on 09-Sep-2014 + +@author: deepa +''' +import sys +from PyQt4 import QtGui,QtCore +from PyQt4.QtSql import * +import logging + +# logging.basicConfig(filename = 'finlog.html',filemode = 'w',level = logging.DEBUG) +logger = None + +def set_databaseconnection(): + ''' + Setting connection with SQLite + ''' + filepath = "/home/deepa/Database/Osdag" + db = QSqlDatabase.addDatabase("QSQLITE") + db.setDatabaseName(filepath) + #db.open() + if not db.open(): + + QtGui.QMessageBox.critical(None, QtGui.qApp.tr("Cannot open database"), + QtGui.qApp.tr("Unable to establish a database connection.\n" + "This example needs SQLite support. Please read " + "the Qt SQL driver documentation for information " + "how to build it.\n\n" + "Click Cancel to exit."), + QtGui.QMessageBox.Cancel) + return False + + logger.info("feching records from database") + +# def set_databaseconnection(): +# ''' +# Setting connection with MySQL database +# ''' +# db = QSqlDatabase.addDatabase("QMYSQL") +# db.setHostName("localhost") +# db.setPort(3306) +# db.setDatabaseName("OSDAG") +# db.setUserName("root") +# db.setPassword("root") +# db.open() +# logger.info("feching records from database") + +def module_setup(): + global logger + logger = logging.getLogger("osdag.model") + set_databaseconnection() + +def get_beamcombolist(): + '''(None) -> (List) + This function returns list of Indian Standard Beam Designation. + ''' + comboList = [] + beamQuery = QSqlQuery("Select Designation from Beams") + comboList.append("Select Designation") + while(beamQuery.next()): + comboList.append(beamQuery.value(0).toString()) + print "printing comboList" + print comboList + return comboList + + +def get_beamdata(sect): + '''(None) --> (Dictionary) + This Function returns the Indian Standard Beam section properties. + ''' + section = sect + + queryStr = "Select * from Beams where Designation = '%s'" % section + + designQuery = QSqlQuery(queryStr) + print(designQuery) + + print designQuery.size() + retDict = {} + record = designQuery.record() + + while(designQuery.next()): + for i in range(0, record.count()): + colName = record.fieldName(i) + retDict[colName] = designQuery.value(i).toString() + + #print(retDict[QString("tw")]) + + return retDict + +def get_columncombolist(): + '''(None) -> (List) + This function returns the list of Indian Standard Column Designation. + ''' + comboList = [] + columnQuery = QSqlQuery("SELECT Designation FROM Columns") + comboList.append("Select Column") + while(columnQuery.next()): + comboList.append(columnQuery.value(0).toString()) + return comboList + +def get_columndata(sect): + + '''(None) --> (Dictionary) + This Function returns the Indian Standard column section properties. + ''' + section = sect + #section = Ui_MainWindow.comboColSec.currentText() + queryStr = "Select * from Beams where Designation = '%s'" % section + + designQuery = QSqlQuery(queryStr) + print(designQuery) + + print designQuery.size() + retDict = {} + record = designQuery.record() + + while(designQuery.next()): + for i in range(0, record.count()): + colName = record.fieldName(i) + retDict[colName] = designQuery.value(i).toString() + + return retDict + +module_setup()
\ No newline at end of file diff --git a/Connections/Shear/Finplate/nut.py b/Connections/Shear/Finplate/nut.py new file mode 100644 index 0000000..2b6ac0b --- /dev/null +++ b/Connections/Shear/Finplate/nut.py @@ -0,0 +1,151 @@ +''' +Created on 12-Dec-2014 + +@author: deepa +''' +from OCC.BRepFilletAPI import BRepFilletAPI_MakeFillet +#from OCC import TopoDS.TopoDS_Compound +from OCC.BRepAlgoAPI import BRepAlgoAPI_Cut, BRepAlgoAPI_Fuse +import numpy +from ModelUtils import * +import math +from OCC.BRepPrimAPI import BRepPrimAPI_MakeCylinder +#from OCC.BRepAlgo import BRepAlgo_BooleanOperation + +from OCC.TopAbs import TopAbs_EDGE #TopAbs_FACE +from OCC.TopExp import TopExp_Explorer +from OCC.TopoDS import TopoDS_Compound, topods +from OCC.TopTools import * +from OCC.Geom import * +from OCC.gp import gp_Pnt,gp_Ax2,gp_DZ,gp_Ax3,gp_Pnt2d,gp_Dir2d,gp_Ax2d +from OCC.Geom import * +from OCC.Geom2d import * +from OCC.GCE2d import * +import OCC.BRepLib as BRepLib +from OCC.BRepOffsetAPI import * +import OCC.BRep as BRep + +class Nut(object): + + def __init__(self,R,T,H,innerR1,outerR2): + self.R = R + self.H = H + self.T = T + self.r1 = innerR1 + self.r2 = outerR2 + self.secOrigin = numpy.array([0, 0, 0]) + self.uDir = numpy.array([1.0, 0, 0]) + self.wDir = numpy.array([0.0, 0, 1.0]) + self.computeParams() + + def place(self, secOrigin, uDir, wDir): + self.secOrigin = secOrigin + self.uDir = uDir + self.wDir = wDir + self.computeParams() + + def getPoint(self,theta): + theta = math.radians(theta) + point = self.secOrigin + (self.R * math.cos(theta)) * self.uDir + (self.R * math.sin(theta)) * self.vDir + return point + + def computeParams(self): + + self.vDir = numpy.cross(self.wDir, self.uDir) + self.a1 = self.getPoint(0) + self.a2 = self.getPoint(60) + self.a3 = self.getPoint(120) + self.a4 = self.getPoint(180) + self.a5 = self.getPoint(240) + self.a6 = self.getPoint(300) + self.points = [self.a1, self.a2, self.a3, self.a4, self.a5, self.a6] + + + def createModel(self): + + edges = makeEdgesFromPoints(self.points) + wire = makeWireFromEdges(edges) + aFace = makeFaceFromWire(wire) + extrudeDir = self.T * self.wDir # extrudeDir is a numpy array + prism = makePrismFromFace(aFace, extrudeDir) + mkFillet = BRepFilletAPI_MakeFillet(prism) + anEdgeExplorer = TopExp_Explorer(prism, TopAbs_EDGE) + while anEdgeExplorer.More(): + aEdge = topods.Edge(anEdgeExplorer.Current()) + mkFillet.Add(self.T / 17. , aEdge) + anEdgeExplorer.Next() + + prism = mkFillet.Shape() + cylOrigin = self.secOrigin + #cylOrigin = self.secOrigin + self.T * self.wDir + innerCyl = BRepPrimAPI_MakeCylinder(gp_Ax2(getGpPt(cylOrigin), getGpDir(self.wDir)), self.r1, self.H).Shape() + #outerCyl = BRepPrimAPI_MakeCylinder(gp_Ax2(getGpPt(cylOrigin), getGpDir(self.wDir)), self.r2, self.H).Shape() + #nutBody = BRepAlgoAPI_Fuse(prism, outerCyl).Shape() + #my_cyl = BRepPrimAPI_MakeCylinder(9.0, 6.0).Shape() + #result_shape = BRepAlgoAPI_Cut(nutBody, innerCyl).Shape() + result_shape = BRepAlgoAPI_Cut(prism, innerCyl).Shape() + + + self.secOrigin = gp_Pnt(0 , 0 , 0) + neckNormal = gp_DZ() + # Threading : Create Surfaces + + nutAx2_bis = gp_Ax3(self.secOrigin , neckNormal) + aCyl1 = Geom_CylindricalSurface(nutAx2_bis , self.T * 0.99) + aCyl2 = Geom_CylindricalSurface(nutAx2_bis , self.T * 1.05) + #aCyl3 = Geom_CylindricalSurface(nutAx2_bis , self.T * 1.11) + aCyl1_handle = aCyl1.GetHandle() + aCyl2_handle = aCyl2.GetHandle() + #aCyl3_handle = aCyl3.GetHandle() + + # Threading : Define 2D Curves + aPnt = gp_Pnt2d(2. * math.pi , self.H / 2.) + aDir = gp_Dir2d(2. * math.pi , self.H / 4.) + aAx2d = gp_Ax2d(aPnt , aDir) + aMajor = 2. * math.pi + aMinor = self.H / 7. + anEllipse1 = Geom2d_Ellipse(aAx2d , aMajor , aMinor) + anEllipse2 = Geom2d_Ellipse(aAx2d , aMajor , aMinor / 4.) + anEllipse1_handle = anEllipse1.GetHandle() + anEllipse2_handle = anEllipse2.GetHandle() + aArc1 = Geom2d_TrimmedCurve(anEllipse1_handle, 0 , math.pi) + aArc2 = Geom2d_TrimmedCurve(anEllipse2_handle, 0 , math.pi) + aArc1_handle = aArc1.GetHandle() + aArc2_handle = aArc2.GetHandle() + anEllipsePnt1 = anEllipse1.Value(0) + anEllipsePnt2 = anEllipse1.Value(math.pi) + aSegment = GCE2d_MakeSegment(anEllipsePnt1 , anEllipsePnt2) + + # Threading : Build Edges and Wires + + aEdge1OnSurf1 = BRepBuilderAPI_MakeEdge( aArc1_handle , aCyl1_handle) + aEdge2OnSurf1 = BRepBuilderAPI_MakeEdge( aSegment.Value() , aCyl1_handle) + aEdge1OnSurf2 = BRepBuilderAPI_MakeEdge( aArc2_handle , aCyl2_handle) + aEdge2OnSurf2 = BRepBuilderAPI_MakeEdge( aSegment.Value() , aCyl2_handle) + threadingWire1 = BRepBuilderAPI_MakeWire(aEdge1OnSurf1.Edge() , aEdge2OnSurf1.Edge())#aEdge3OnSurf1.Edge()) + self.threading1 = threadingWire1 + threadingWire2 = BRepBuilderAPI_MakeWire(aEdge1OnSurf2.Edge() , aEdge2OnSurf2.Edge())#aEdge3OnSurf2.Edge()) + BRepLib.breplib.BuildCurves3d(threadingWire1.Shape()) + BRepLib.breplib.BuildCurves3d(threadingWire2.Shape()) + + # Create Threading + + aTool = BRepOffsetAPI_ThruSections(True) + aTool.AddWire(threadingWire1.Wire()) + aTool.AddWire(threadingWire2.Wire()) + aTool.CheckCompatibility(False) + myThreading = aTool.Shape() + + #Building the resulting compound + + aRes = TopoDS_Compound() + aBuilder = BRep.BRep_Builder() + aBuilder.MakeCompound(aRes) + aBuilder.Add(aRes, result_shape) + aBuilder.Add(aRes, myThreading) + final_shape = BRepAlgoAPI_Cut(result_shape, myThreading).Shape() + + + return final_shape + +
\ No newline at end of file diff --git a/Connections/Shear/Finplate/plate.py b/Connections/Shear/Finplate/plate.py new file mode 100644 index 0000000..e4b9e53 --- /dev/null +++ b/Connections/Shear/Finplate/plate.py @@ -0,0 +1,44 @@ +''' +Created on 29-Nov-2014 + +@author: deepa +''' +import numpy +from ModelUtils import * + +class Plate(object): + # + def __init__(self,L, W, T): + self.L = L + self.W = W + self.T = T + self.secOrigin = numpy.array([0, 0, 0]) + self.uDir = numpy.array([1.0, 0, 0]) + self.wDir = numpy.array([0.0, 0, 1.0]) + self.computeParams() + + def place(self, secOrigin, uDir, wDir): + self.secOrigin = secOrigin + self.uDir = uDir + self.wDir = wDir + self.computeParams() + + def computeParams(self): + self.vDir = numpy.cross(self.wDir, self.uDir) + self.a1 = self.secOrigin + (self.T/2.0) * self.uDir + (self.L/2.0) * self.vDir + self.a2 = self.secOrigin + (-self.T/2.0) * self.uDir + (self.L/2.0) * self.vDir + self.a3 = self.secOrigin + (-self.T/2.0) * self.uDir + (-self.L/2.0) * self.vDir + self.a4 = self.secOrigin + (self.T/2.0) * self.uDir + (-self.L/2.0) * self.vDir + self.points = [self.a1, self.a2, self.a3, self.a4] + + + def createModel(self): + edges = makeEdgesFromPoints(self.points) + wire = makeWireFromEdges(edges) + aFace = makeFaceFromWire(wire) + extrudeDir = self.W * self.wDir # extrudeDir is a numpy array + prism = makePrismFromFace(aFace, extrudeDir) + + return prism + +
\ No newline at end of file diff --git a/Connections/Shear/Finplate/saveINPUT.txt b/Connections/Shear/Finplate/saveINPUT.txt new file mode 100644 index 0000000..6b4cf97 --- /dev/null +++ b/Connections/Shear/Finplate/saveINPUT.txt @@ -0,0 +1,61 @@ +(dp0 +S'Member' +p1 +(dp2 +S'columSection' +p3 +S'ISHB 250' +p4 +sS'fy(MPa)' +p5 +I250 +sS'fu(MPa)' +p6 +I410 +sS'beamSection' +p7 +S'ISMB 400' +p8 +sS'connectivity' +p9 +S'Column web-Beam web' +p10 +ssS'Plate' +p11 +(dp12 +S'thickness(mm)' +p13 +I12 +sS'length(mm)' +p14 +I300 +sS'width(mm)' +p15 +I100 +ssS'Load' +p16 +(dp17 +S'shearForce(kN)' +p18 +I140 +ssS'Weld' +p19 +(dp20 +S'size(mm)' +p21 +I6 +ssS'Bolt' +p22 +(dp23 +S'grade' +p24 +S'8.8' +p25 +sS'type' +p26 +S'HSFG' +p27 +sS'diameter(mm)' +p28 +I20 +ss.
\ No newline at end of file diff --git a/Connections/Shear/Finplate/saveINPUT1.txt b/Connections/Shear/Finplate/saveINPUT1.txt new file mode 100644 index 0000000..04b06c0 --- /dev/null +++ b/Connections/Shear/Finplate/saveINPUT1.txt @@ -0,0 +1,61 @@ +(dp0 +S'Member' +p1 +(dp2 +S'columSection' +p3 +S'Select Column' +p4 +sS'fy(MPa)' +p5 +I0 +sS'fu(MPa)' +p6 +I0 +sS'beamSection' +p7 +S'Select Designation' +p8 +sS'connectivity' +p9 +S'Select Connectivity' +p10 +ssS'Plate' +p11 +(dp12 +S'thickness(mm)' +p13 +I0 +sS'length(mm)' +p14 +I0 +sS'width(mm)' +p15 +I0 +ssS'Load' +p16 +(dp17 +S'shearForce(kN)' +p18 +I0 +ssS'Weld' +p19 +(dp20 +S'size(mm)' +p21 +I0 +ssS'Bolt' +p22 +(dp23 +S'grade' +p24 +S'' +p25 +sS'type' +p26 +S'Please Select Type' +p27 +sS'diameter(mm)' +p28 +I0 +ss.
\ No newline at end of file diff --git a/Connections/Shear/Finplate/saveINPUT_1.txt b/Connections/Shear/Finplate/saveINPUT_1.txt new file mode 100644 index 0000000..fc9f970 --- /dev/null +++ b/Connections/Shear/Finplate/saveINPUT_1.txt @@ -0,0 +1,60 @@ +(dp0 +S'Member' +p1 +(dp2 +S'columSection' +p3 +S'' +p4 +sS'fy(MPa)' +p5 +I250 +sS'fu(MPa)' +p6 +I410 +sS'beamSection' +p7 +g4 +sS'connectivity' +p8 +S'Column flange-Beam web' +p9 +ssS'Plate' +p10 +(dp11 +S'thickness(mm)' +p12 +I10 +sS'length(mm)' +p13 +I300 +sS'width(mm)' +p14 +I100 +ssS'Load' +p15 +(dp16 +S'shearForce(kN)' +p17 +I500 +ssS'Weld' +p18 +(dp19 +S'size(mm)' +p20 +I6 +ssS'Bolt' +p21 +(dp22 +S'grade' +p23 +S'8.8' +p24 +sS'type' +p25 +S'HSFG' +p26 +sS'diameter(mm)' +p27 +I20 +ss.
\ No newline at end of file diff --git a/Connections/Shear/Finplate/ui_finPlate.py b/Connections/Shear/Finplate/ui_finPlate.py new file mode 100644 index 0000000..b9ba1e4 --- /dev/null +++ b/Connections/Shear/Finplate/ui_finPlate.py @@ -0,0 +1,1669 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'finPlate.ui' +# +# Created: Tue Jun 2 11:54:41 2015 +# by: PyQt4 UI code generator 4.10.4 +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore, QtGui + +try: + _fromUtf8 = QtCore.QString.fromUtf8 +except AttributeError: + def _fromUtf8(s): + return s + +try: + _encoding = QtGui.QApplication.UnicodeUTF8 + def _translate(context, text, disambig): + return QtGui.QApplication.translate(context, text, disambig, _encoding) +except AttributeError: + def _translate(context, text, disambig): + return QtGui.QApplication.translate(context, text, disambig) + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName(_fromUtf8("MainWindow")) + MainWindow.resize(1335, 767) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/download1.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + MainWindow.setWindowIcon(icon) + MainWindow.setIconSize(QtCore.QSize(20, 2)) + self.centralwidget = QtGui.QWidget(MainWindow) + self.centralwidget.setObjectName(_fromUtf8("centralwidget")) + self.verticalLayout_2 = QtGui.QVBoxLayout(self.centralwidget) + self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) + self.frame = QtGui.QFrame(self.centralwidget) + self.frame.setMinimumSize(QtCore.QSize(0, 28)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 28)) + self.frame.setFrameShape(QtGui.QFrame.NoFrame) + self.frame.setFrameShadow(QtGui.QFrame.Raised) + self.frame.setObjectName(_fromUtf8("frame")) + self.btnInput = QtGui.QToolButton(self.frame) + self.btnInput.setGeometry(QtCore.QRect(0, 0, 28, 28)) + self.btnInput.setFocusPolicy(QtCore.Qt.NoFocus) + self.btnInput.setLayoutDirection(QtCore.Qt.LeftToRight) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/input.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnInput.setIcon(icon1) + self.btnInput.setIconSize(QtCore.QSize(18, 18)) + self.btnInput.setObjectName(_fromUtf8("btnInput")) + self.btnOutput = QtGui.QToolButton(self.frame) + self.btnOutput.setGeometry(QtCore.QRect(30, 0, 28, 28)) + self.btnOutput.setFocusPolicy(QtCore.Qt.NoFocus) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/output.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnOutput.setIcon(icon2) + self.btnOutput.setIconSize(QtCore.QSize(18, 18)) + self.btnOutput.setObjectName(_fromUtf8("btnOutput")) + self.btnZmOut = QtGui.QToolButton(self.frame) + self.btnZmOut.setGeometry(QtCore.QRect(80, 0, 28, 28)) + self.btnZmOut.setFocusPolicy(QtCore.Qt.NoFocus) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/zoom_in_01.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnZmOut.setIcon(icon3) + self.btnZmOut.setIconSize(QtCore.QSize(18, 18)) + self.btnZmOut.setObjectName(_fromUtf8("btnZmOut")) + self.btnZmIn = QtGui.QToolButton(self.frame) + self.btnZmIn.setGeometry(QtCore.QRect(110, 0, 28, 28)) + self.btnZmIn.setFocusPolicy(QtCore.Qt.NoFocus) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/zoom_out_01.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnZmIn.setIcon(icon4) + self.btnZmIn.setIconSize(QtCore.QSize(18, 18)) + self.btnZmIn.setObjectName(_fromUtf8("btnZmIn")) + self.btnSvgSave = QtGui.QToolButton(self.frame) + self.btnSvgSave.setGeometry(QtCore.QRect(200, 0, 28, 28)) + self.btnSvgSave.setFocusPolicy(QtCore.Qt.NoFocus) + icon5 = QtGui.QIcon() + icon5.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/save.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnSvgSave.setIcon(icon5) + self.btnSvgSave.setIconSize(QtCore.QSize(18, 18)) + self.btnSvgSave.setObjectName(_fromUtf8("btnSvgSave")) + self.btnTotatAcw = QtGui.QToolButton(self.frame) + self.btnTotatAcw.setGeometry(QtCore.QRect(140, 0, 28, 28)) + self.btnTotatAcw.setFocusPolicy(QtCore.Qt.NoFocus) + icon6 = QtGui.QIcon() + icon6.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/rotate-ccw.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnTotatAcw.setIcon(icon6) + self.btnTotatAcw.setIconSize(QtCore.QSize(22, 22)) + self.btnTotatAcw.setObjectName(_fromUtf8("btnTotatAcw")) + self.btnRotatCw = QtGui.QToolButton(self.frame) + self.btnRotatCw.setGeometry(QtCore.QRect(170, 0, 28, 28)) + self.btnRotatCw.setFocusPolicy(QtCore.Qt.NoFocus) + icon7 = QtGui.QIcon() + icon7.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/rotate-cw.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnRotatCw.setIcon(icon7) + self.btnRotatCw.setIconSize(QtCore.QSize(25, 25)) + self.btnRotatCw.setObjectName(_fromUtf8("btnRotatCw")) + self.btn3D = QtGui.QToolButton(self.frame) + self.btn3D.setGeometry(QtCore.QRect(390, 0, 28, 28)) + font = QtGui.QFont() + font.setFamily(_fromUtf8("Droid Serif")) + font.setPointSize(11) + font.setBold(True) + font.setItalic(True) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + self.btn3D.setFont(font) + self.btn3D.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn3D.setAutoRaise(False) + self.btn3D.setArrowType(QtCore.Qt.NoArrow) + self.btn3D.setObjectName(_fromUtf8("btn3D")) + self.chkBxBeam = QtGui.QCheckBox(self.frame) + self.chkBxBeam.setGeometry(QtCore.QRect(430, 0, 71, 29)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.chkBxBeam.setFont(font) + self.chkBxBeam.setFocusPolicy(QtCore.Qt.NoFocus) + self.chkBxBeam.setObjectName(_fromUtf8("chkBxBeam")) + self.chkBxCol = QtGui.QCheckBox(self.frame) + self.chkBxCol.setGeometry(QtCore.QRect(510, 0, 91, 29)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.chkBxCol.setFont(font) + self.chkBxCol.setFocusPolicy(QtCore.Qt.NoFocus) + self.chkBxCol.setObjectName(_fromUtf8("chkBxCol")) + self.chkBxFinplate = QtGui.QCheckBox(self.frame) + self.chkBxFinplate.setGeometry(QtCore.QRect(600, 0, 92, 29)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.chkBxFinplate.setFont(font) + self.chkBxFinplate.setFocusPolicy(QtCore.Qt.NoFocus) + self.chkBxFinplate.setObjectName(_fromUtf8("chkBxFinplate")) + self.btn_front = QtGui.QToolButton(self.frame) + self.btn_front.setGeometry(QtCore.QRect(270, 0, 28, 28)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.btn_front.setFont(font) + self.btn_front.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn_front.setAcceptDrops(True) + self.btn_front.setText(_fromUtf8("")) + icon8 = QtGui.QIcon() + icon8.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../../Downloads/ZY.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_front.setIcon(icon8) + self.btn_front.setIconSize(QtCore.QSize(22, 22)) + self.btn_front.setObjectName(_fromUtf8("btn_front")) + self.btn_top = QtGui.QToolButton(self.frame) + self.btn_top.setGeometry(QtCore.QRect(300, 0, 28, 28)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.btn_top.setFont(font) + self.btn_top.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn_top.setText(_fromUtf8("")) + icon9 = QtGui.QIcon() + icon9.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../../Downloads/Y-X.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_top.setIcon(icon9) + self.btn_top.setIconSize(QtCore.QSize(22, 23)) + self.btn_top.setObjectName(_fromUtf8("btn_top")) + self.btn_side = QtGui.QToolButton(self.frame) + self.btn_side.setGeometry(QtCore.QRect(330, 0, 28, 28)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.btn_side.setFont(font) + self.btn_side.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn_side.setText(_fromUtf8("")) + icon10 = QtGui.QIcon() + icon10.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../../Downloads/Z-Y.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_side.setIcon(icon10) + self.btn_side.setIconSize(QtCore.QSize(22, 22)) + self.btn_side.setObjectName(_fromUtf8("btn_side")) + self.verticalLayout_2.addWidget(self.frame) + self.splitter = QtGui.QSplitter(self.centralwidget) + self.splitter.setOrientation(QtCore.Qt.Vertical) + self.splitter.setObjectName(_fromUtf8("splitter")) + self.frame_2 = QtGui.QFrame(self.splitter) + self.frame_2.setMinimumSize(QtCore.QSize(0, 100)) + self.frame_2.setFrameShape(QtGui.QFrame.Box) + self.frame_2.setFrameShadow(QtGui.QFrame.Raised) + self.frame_2.setLineWidth(1) + self.frame_2.setMidLineWidth(1) + self.frame_2.setObjectName(_fromUtf8("frame_2")) + self.verticalLayout = QtGui.QVBoxLayout(self.frame_2) + self.verticalLayout.setMargin(1) + self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) + self.mytabWidget = QtGui.QTabWidget(self.frame_2) + self.mytabWidget.setMinimumSize(QtCore.QSize(0, 450)) + font = QtGui.QFont() + font.setPointSize(8) + self.mytabWidget.setFont(font) + self.mytabWidget.setFocusPolicy(QtCore.Qt.NoFocus) + self.mytabWidget.setStyleSheet(_fromUtf8("QTabBar::tab { height: 75px; width: 1px; }")) + self.mytabWidget.setTabPosition(QtGui.QTabWidget.West) + self.mytabWidget.setObjectName(_fromUtf8("mytabWidget")) + self.verticalLayout.addWidget(self.mytabWidget) + self.textEdit = QtGui.QTextEdit(self.splitter) + self.textEdit.setMinimumSize(QtCore.QSize(0, 125)) + self.textEdit.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.textEdit.setObjectName(_fromUtf8("textEdit")) + self.verticalLayout_2.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtGui.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1335, 30)) + self.menubar.setObjectName(_fromUtf8("menubar")) + self.menuFile = QtGui.QMenu(self.menubar) + self.menuFile.setObjectName(_fromUtf8("menuFile")) + self.menuEdit = QtGui.QMenu(self.menubar) + self.menuEdit.setObjectName(_fromUtf8("menuEdit")) + self.menuView = QtGui.QMenu(self.menubar) + self.menuView.setObjectName(_fromUtf8("menuView")) + self.menuHelp = QtGui.QMenu(self.menubar) + self.menuHelp.setObjectName(_fromUtf8("menuHelp")) + self.menuGraphics = QtGui.QMenu(self.menubar) + self.menuGraphics.setObjectName(_fromUtf8("menuGraphics")) + MainWindow.setMenuBar(self.menubar) + self.inputDock = QtGui.QDockWidget(MainWindow) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.inputDock.sizePolicy().hasHeightForWidth()) + self.inputDock.setSizePolicy(sizePolicy) + self.inputDock.setMinimumSize(QtCore.QSize(125, 710)) + self.inputDock.setMaximumSize(QtCore.QSize(310, 710)) + self.inputDock.setBaseSize(QtCore.QSize(310, 710)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.inputDock.setFont(font) + self.inputDock.setFloating(False) + self.inputDock.setFeatures(QtGui.QDockWidget.AllDockWidgetFeatures) + self.inputDock.setObjectName(_fromUtf8("inputDock")) + self.dockWidgetContents = QtGui.QWidget() + self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) + self.txtFy = QtGui.QLineEdit(self.dockWidgetContents) + self.txtFy.setGeometry(QtCore.QRect(150, 140, 161, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtFy.setFont(font) + self.txtFy.setObjectName(_fromUtf8("txtFy")) + self.label_3 = QtGui.QLabel(self.dockWidgetContents) + self.label_3.setGeometry(QtCore.QRect(6, 75, 151, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_3.setFont(font) + self.label_3.setObjectName(_fromUtf8("label_3")) + self.comboConnLoc = QtGui.QComboBox(self.dockWidgetContents) + self.comboConnLoc.setGeometry(QtCore.QRect(150, 170, 161, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboConnLoc.setFont(font) + self.comboConnLoc.setObjectName(_fromUtf8("comboConnLoc")) + self.comboConnLoc.addItem(_fromUtf8("")) + self.comboConnLoc.addItem(_fromUtf8("")) + self.comboConnLoc.addItem(_fromUtf8("")) + self.txtFu = QtGui.QLineEdit(self.dockWidgetContents) + self.txtFu.setGeometry(QtCore.QRect(150, 110, 161, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtFu.setFont(font) + self.txtFu.setObjectName(_fromUtf8("txtFu")) + self.label = QtGui.QLabel(self.dockWidgetContents) + self.label.setGeometry(QtCore.QRect(1, 15, 221, 21)) + palette = QtGui.QPalette() + brush = QtGui.QBrush(QtGui.QColor(0, 0, 127)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Link, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Link, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Link, brush) + self.label.setPalette(palette) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setObjectName(_fromUtf8("label")) + self.label_4 = QtGui.QLabel(self.dockWidgetContents) + self.label_4.setGeometry(QtCore.QRect(6, 170, 120, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_4.setFont(font) + self.label_4.setObjectName(_fromUtf8("label_4")) + self.lbl_fu = QtGui.QLabel(self.dockWidgetContents) + self.lbl_fu.setGeometry(QtCore.QRect(6, 110, 120, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_fu.setFont(font) + self.lbl_fu.setObjectName(_fromUtf8("lbl_fu")) + self.comboColSec = QtGui.QComboBox(self.dockWidgetContents) + self.comboColSec.setGeometry(QtCore.QRect(150, 75, 161, 25)) + self.comboColSec.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboColSec.setMaxVisibleItems(5) + self.comboColSec.setObjectName(_fromUtf8("comboColSec")) + self.lbl_fy = QtGui.QLabel(self.dockWidgetContents) + self.lbl_fy.setGeometry(QtCore.QRect(6, 135, 120, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_fy.setFont(font) + self.lbl_fy.setObjectName(_fromUtf8("lbl_fy")) + self.label_18 = QtGui.QLabel(self.dockWidgetContents) + self.label_18.setGeometry(QtCore.QRect(1, 240, 170, 25)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_18.setFont(font) + self.label_18.setObjectName(_fromUtf8("label_18")) + self.lbl_shear = QtGui.QLabel(self.dockWidgetContents) + self.lbl_shear.setGeometry(QtCore.QRect(6, 270, 151, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_shear.setFont(font) + self.lbl_shear.setObjectName(_fromUtf8("lbl_shear")) + self.txtShear = QtGui.QLineEdit(self.dockWidgetContents) + self.txtShear.setGeometry(QtCore.QRect(150, 270, 161, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtShear.setFont(font) + self.txtShear.setObjectName(_fromUtf8("txtShear")) + self.label_5 = QtGui.QLabel(self.dockWidgetContents) + self.label_5.setGeometry(QtCore.QRect(1, 300, 150, 25)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_5.setFont(font) + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName(_fromUtf8("label_5")) + self.comboType = QtGui.QComboBox(self.dockWidgetContents) + self.comboType.setGeometry(QtCore.QRect(150, 360, 160, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.comboType.setFont(font) + self.comboType.setMaxVisibleItems(10) + self.comboType.setObjectName(_fromUtf8("comboType")) + self.label_6 = QtGui.QLabel(self.dockWidgetContents) + self.label_6.setGeometry(QtCore.QRect(6, 390, 100, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_6.setFont(font) + self.label_6.setObjectName(_fromUtf8("label_6")) + self.comboGrade = QtGui.QComboBox(self.dockWidgetContents) + self.comboGrade.setGeometry(QtCore.QRect(150, 390, 160, 25)) + self.comboGrade.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboGrade.setMaxVisibleItems(6) + self.comboGrade.setObjectName(_fromUtf8("comboGrade")) + self.label_7 = QtGui.QLabel(self.dockWidgetContents) + self.label_7.setGeometry(QtCore.QRect(6, 330, 131, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_7.setFont(font) + self.label_7.setObjectName(_fromUtf8("label_7")) + self.label_8 = QtGui.QLabel(self.dockWidgetContents) + self.label_8.setGeometry(QtCore.QRect(6, 360, 100, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_8.setFont(font) + self.label_8.setObjectName(_fromUtf8("label_8")) + self.comboDaimeter = QtGui.QComboBox(self.dockWidgetContents) + self.comboDaimeter.setGeometry(QtCore.QRect(150, 330, 160, 27)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboDaimeter.setFont(font) + self.comboDaimeter.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboDaimeter.setMaxVisibleItems(5) + self.comboDaimeter.setObjectName(_fromUtf8("comboDaimeter")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.lbl_width_2 = QtGui.QLabel(self.dockWidgetContents) + self.lbl_width_2.setGeometry(QtCore.QRect(6, 510, 111, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_width_2.setFont(font) + self.lbl_width_2.setObjectName(_fromUtf8("lbl_width_2")) + self.label_40 = QtGui.QLabel(self.dockWidgetContents) + self.label_40.setGeometry(QtCore.QRect(1, 420, 100, 25)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_40.setFont(font) + self.label_40.setObjectName(_fromUtf8("label_40")) + self.label_41 = QtGui.QLabel(self.dockWidgetContents) + self.label_41.setGeometry(QtCore.QRect(6, 450, 131, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_41.setFont(font) + self.label_41.setObjectName(_fromUtf8("label_41")) + self.txtPlateLen = QtGui.QLineEdit(self.dockWidgetContents) + self.txtPlateLen.setGeometry(QtCore.QRect(150, 480, 160, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtPlateLen.setFont(font) + self.txtPlateLen.setObjectName(_fromUtf8("txtPlateLen")) + self.lbl_len_2 = QtGui.QLabel(self.dockWidgetContents) + self.lbl_len_2.setGeometry(QtCore.QRect(6, 480, 111, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_len_2.setFont(font) + self.lbl_len_2.setObjectName(_fromUtf8("lbl_len_2")) + self.comboPlateThick_2 = QtGui.QComboBox(self.dockWidgetContents) + self.comboPlateThick_2.setGeometry(QtCore.QRect(150, 450, 160, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboPlateThick_2.setFont(font) + self.comboPlateThick_2.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboPlateThick_2.setMaxVisibleItems(5) + self.comboPlateThick_2.setObjectName(_fromUtf8("comboPlateThick_2")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.label_42 = QtGui.QLabel(self.dockWidgetContents) + self.label_42.setGeometry(QtCore.QRect(1, 540, 66, 25)) + font = QtGui.QFont() + font.setPointSize(11) + self.label_42.setFont(font) + self.label_42.setObjectName(_fromUtf8("label_42")) + self.label_43 = QtGui.QLabel(self.dockWidgetContents) + self.label_43.setGeometry(QtCore.QRect(6, 570, 131, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_43.setFont(font) + self.label_43.setObjectName(_fromUtf8("label_43")) + self.outputFrame_2 = QtGui.QFrame(self.dockWidgetContents) + self.outputFrame_2.setGeometry(QtCore.QRect(988, 620, 320, 690)) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputFrame_2.sizePolicy().hasHeightForWidth()) + self.outputFrame_2.setSizePolicy(sizePolicy) + self.outputFrame_2.setMinimumSize(QtCore.QSize(320, 690)) + self.outputFrame_2.setFrameShape(QtGui.QFrame.StyledPanel) + self.outputFrame_2.setFrameShadow(QtGui.QFrame.Raised) + self.outputFrame_2.setObjectName(_fromUtf8("outputFrame_2")) + self.txtShrCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtShrCapacity_2.setGeometry(QtCore.QRect(181, 50, 130, 25)) + self.txtShrCapacity_2.setText(_fromUtf8("")) + self.txtShrCapacity_2.setReadOnly(True) + self.txtShrCapacity_2.setObjectName(_fromUtf8("txtShrCapacity_2")) + self.txtbearCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtbearCapacity_2.setGeometry(QtCore.QRect(181, 80, 130, 25)) + self.txtbearCapacity_2.setReadOnly(True) + self.txtbearCapacity_2.setObjectName(_fromUtf8("txtbearCapacity_2")) + self.txtBoltCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtBoltCapacity_2.setGeometry(QtCore.QRect(181, 110, 130, 25)) + self.txtBoltCapacity_2.setReadOnly(True) + self.txtBoltCapacity_2.setObjectName(_fromUtf8("txtBoltCapacity_2")) + self.txtNoBolts_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtNoBolts_2.setGeometry(QtCore.QRect(181, 140, 130, 25)) + self.txtNoBolts_2.setReadOnly(True) + self.txtNoBolts_2.setObjectName(_fromUtf8("txtNoBolts_2")) + self.txtPitch_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtPitch_2.setGeometry(QtCore.QRect(181, 230, 130, 25)) + self.txtPitch_2.setReadOnly(True) + self.txtPitch_2.setObjectName(_fromUtf8("txtPitch_2")) + self.txtGuage_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtGuage_2.setGeometry(QtCore.QRect(181, 260, 130, 25)) + self.txtGuage_2.setReadOnly(True) + self.txtGuage_2.setObjectName(_fromUtf8("txtGuage_2")) + self.txtEndDist_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtEndDist_2.setGeometry(QtCore.QRect(181, 290, 130, 25)) + self.txtEndDist_2.setReadOnly(True) + self.txtEndDist_2.setObjectName(_fromUtf8("txtEndDist_2")) + self.txtEdgeDist_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtEdgeDist_2.setGeometry(QtCore.QRect(181, 320, 130, 25)) + self.txtEdgeDist_2.setReadOnly(True) + self.txtEdgeDist_2.setObjectName(_fromUtf8("txtEdgeDist_2")) + self.txtWeldThick_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtWeldThick_2.setGeometry(QtCore.QRect(181, 380, 130, 25)) + self.txtWeldThick_2.setReadOnly(True) + self.txtWeldThick_2.setObjectName(_fromUtf8("txtWeldThick_2")) + self.txtResltShr_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtResltShr_2.setGeometry(QtCore.QRect(181, 410, 130, 25)) + self.txtResltShr_2.setReadOnly(True) + self.txtResltShr_2.setObjectName(_fromUtf8("txtResltShr_2")) + self.txtWeldStrng_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtWeldStrng_2.setGeometry(QtCore.QRect(181, 440, 130, 25)) + self.txtWeldStrng_2.setReadOnly(True) + self.txtWeldStrng_2.setObjectName(_fromUtf8("txtWeldStrng_2")) + self.txtPlateThick_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtPlateThick_2.setGeometry(QtCore.QRect(181, 510, 130, 25)) + self.txtPlateThick_2.setReadOnly(True) + self.txtPlateThick_2.setObjectName(_fromUtf8("txtPlateThick_2")) + self.label_44 = QtGui.QLabel(self.outputFrame_2) + self.label_44.setGeometry(QtCore.QRect(4, 30, 66, 17)) + self.label_44.setObjectName(_fromUtf8("label_44")) + self.label_45 = QtGui.QLabel(self.outputFrame_2) + self.label_45.setGeometry(QtCore.QRect(10, 50, 170, 25)) + self.label_45.setObjectName(_fromUtf8("label_45")) + self.label_46 = QtGui.QLabel(self.outputFrame_2) + self.label_46.setGeometry(QtCore.QRect(10, 80, 150, 25)) + self.label_46.setObjectName(_fromUtf8("label_46")) + self.labl123_2 = QtGui.QLabel(self.outputFrame_2) + self.labl123_2.setGeometry(QtCore.QRect(10, 110, 150, 25)) + self.labl123_2.setObjectName(_fromUtf8("labl123_2")) + self.t_2 = QtGui.QLabel(self.outputFrame_2) + self.t_2.setGeometry(QtCore.QRect(10, 140, 130, 25)) + self.t_2.setObjectName(_fromUtf8("t_2")) + self.label_47 = QtGui.QLabel(self.outputFrame_2) + self.label_47.setGeometry(QtCore.QRect(10, 230, 130, 25)) + self.label_47.setObjectName(_fromUtf8("label_47")) + self.label_48 = QtGui.QLabel(self.outputFrame_2) + self.label_48.setGeometry(QtCore.QRect(10, 290, 130, 25)) + self.label_48.setObjectName(_fromUtf8("label_48")) + self.label_49 = QtGui.QLabel(self.outputFrame_2) + self.label_49.setGeometry(QtCore.QRect(10, 380, 130, 25)) + self.label_49.setObjectName(_fromUtf8("label_49")) + self.label_50 = QtGui.QLabel(self.outputFrame_2) + self.label_50.setGeometry(QtCore.QRect(10, 440, 160, 25)) + self.label_50.setObjectName(_fromUtf8("label_50")) + self.label_51 = QtGui.QLabel(self.outputFrame_2) + self.label_51.setGeometry(QtCore.QRect(10, 260, 130, 25)) + self.label_51.setObjectName(_fromUtf8("label_51")) + self.label_52 = QtGui.QLabel(self.outputFrame_2) + self.label_52.setGeometry(QtCore.QRect(4, 350, 130, 25)) + self.label_52.setObjectName(_fromUtf8("label_52")) + self.label_53 = QtGui.QLabel(self.outputFrame_2) + self.label_53.setGeometry(QtCore.QRect(10, 320, 140, 25)) + self.label_53.setObjectName(_fromUtf8("label_53")) + self.label_54 = QtGui.QLabel(self.outputFrame_2) + self.label_54.setGeometry(QtCore.QRect(10, 510, 130, 25)) + self.label_54.setObjectName(_fromUtf8("label_54")) + self.label_55 = QtGui.QLabel(self.outputFrame_2) + self.label_55.setGeometry(QtCore.QRect(10, 410, 170, 25)) + self.label_55.setObjectName(_fromUtf8("label_55")) + self.label_56 = QtGui.QLabel(self.outputFrame_2) + self.label_56.setGeometry(QtCore.QRect(10, 540, 160, 25)) + self.label_56.setObjectName(_fromUtf8("label_56")) + self.label_57 = QtGui.QLabel(self.outputFrame_2) + self.label_57.setGeometry(QtCore.QRect(4, 480, 130, 25)) + self.label_57.setObjectName(_fromUtf8("label_57")) + self.txtExtMomnt_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtExtMomnt_2.setGeometry(QtCore.QRect(180, 540, 130, 25)) + self.txtExtMomnt_2.setReadOnly(True) + self.txtExtMomnt_2.setObjectName(_fromUtf8("txtExtMomnt_2")) + self.txtMomntCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtMomntCapacity_2.setGeometry(QtCore.QRect(180, 570, 130, 25)) + self.txtMomntCapacity_2.setReadOnly(True) + self.txtMomntCapacity_2.setObjectName(_fromUtf8("txtMomntCapacity_2")) + self.label_58 = QtGui.QLabel(self.outputFrame_2) + self.label_58.setGeometry(QtCore.QRect(10, 570, 170, 25)) + self.label_58.setObjectName(_fromUtf8("label_58")) + self.lbl_col_2 = QtGui.QLabel(self.outputFrame_2) + self.lbl_col_2.setGeometry(QtCore.QRect(10, 200, 130, 25)) + self.lbl_col_2.setObjectName(_fromUtf8("lbl_col_2")) + self.lbl_row_2 = QtGui.QLabel(self.outputFrame_2) + self.lbl_row_2.setGeometry(QtCore.QRect(10, 170, 130, 25)) + self.lbl_row_2.setObjectName(_fromUtf8("lbl_row_2")) + self.lineEdit_3 = QtGui.QLineEdit(self.outputFrame_2) + self.lineEdit_3.setGeometry(QtCore.QRect(180, 170, 130, 25)) + self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) + self.lineEdit_4 = QtGui.QLineEdit(self.outputFrame_2) + self.lineEdit_4.setGeometry(QtCore.QRect(180, 200, 130, 25)) + self.lineEdit_4.setObjectName(_fromUtf8("lineEdit_4")) + self.label_59 = QtGui.QLabel(self.outputFrame_2) + self.label_59.setGeometry(QtCore.QRect(120, 0, 60, 31)) + self.label_59.setObjectName(_fromUtf8("label_59")) + self.pushButton_2 = QtGui.QPushButton(self.outputFrame_2) + self.pushButton_2.setGeometry(QtCore.QRect(20, 620, 40, 50)) + self.pushButton_2.setText(_fromUtf8("")) + icon11 = QtGui.QIcon() + icon11.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/logo.jpg")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.pushButton_2.setIcon(icon11) + self.pushButton_2.setIconSize(QtCore.QSize(40, 50)) + self.pushButton_2.setCheckable(False) + self.pushButton_2.setAutoDefault(False) + self.pushButton_2.setDefault(False) + self.pushButton_2.setFlat(False) + self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) + self.btnReset_2 = QtGui.QPushButton(self.dockWidgetContents) + self.btnReset_2.setGeometry(QtCore.QRect(30, 1249, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnReset_2.setFont(font) + self.btnReset_2.setObjectName(_fromUtf8("btnReset_2")) + self.btnDesign_2 = QtGui.QPushButton(self.dockWidgetContents) + self.btnDesign_2.setGeometry(QtCore.QRect(150, 1249, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnDesign_2.setFont(font) + self.btnDesign_2.setAutoDefault(False) + self.btnDesign_2.setDefault(False) + self.btnDesign_2.setFlat(False) + self.btnDesign_2.setObjectName(_fromUtf8("btnDesign_2")) + self.outputFrame_3 = QtGui.QFrame(self.dockWidgetContents) + self.outputFrame_3.setGeometry(QtCore.QRect(1088, 610, 320, 690)) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputFrame_3.sizePolicy().hasHeightForWidth()) + self.outputFrame_3.setSizePolicy(sizePolicy) + self.outputFrame_3.setMinimumSize(QtCore.QSize(320, 690)) + self.outputFrame_3.setFrameShape(QtGui.QFrame.StyledPanel) + self.outputFrame_3.setFrameShadow(QtGui.QFrame.Raised) + self.outputFrame_3.setObjectName(_fromUtf8("outputFrame_3")) + self.txtShrCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtShrCapacity_3.setGeometry(QtCore.QRect(181, 50, 130, 25)) + self.txtShrCapacity_3.setText(_fromUtf8("")) + self.txtShrCapacity_3.setReadOnly(True) + self.txtShrCapacity_3.setObjectName(_fromUtf8("txtShrCapacity_3")) + self.txtbearCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtbearCapacity_3.setGeometry(QtCore.QRect(181, 80, 130, 25)) + self.txtbearCapacity_3.setReadOnly(True) + self.txtbearCapacity_3.setObjectName(_fromUtf8("txtbearCapacity_3")) + self.txtBoltCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtBoltCapacity_3.setGeometry(QtCore.QRect(181, 110, 130, 25)) + self.txtBoltCapacity_3.setReadOnly(True) + self.txtBoltCapacity_3.setObjectName(_fromUtf8("txtBoltCapacity_3")) + self.txtNoBolts_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtNoBolts_3.setGeometry(QtCore.QRect(181, 140, 130, 25)) + self.txtNoBolts_3.setReadOnly(True) + self.txtNoBolts_3.setObjectName(_fromUtf8("txtNoBolts_3")) + self.txtPitch_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtPitch_3.setGeometry(QtCore.QRect(181, 230, 130, 25)) + self.txtPitch_3.setReadOnly(True) + self.txtPitch_3.setObjectName(_fromUtf8("txtPitch_3")) + self.txtGuage_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtGuage_3.setGeometry(QtCore.QRect(181, 260, 130, 25)) + self.txtGuage_3.setReadOnly(True) + self.txtGuage_3.setObjectName(_fromUtf8("txtGuage_3")) + self.txtEndDist_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtEndDist_3.setGeometry(QtCore.QRect(181, 290, 130, 25)) + self.txtEndDist_3.setReadOnly(True) + self.txtEndDist_3.setObjectName(_fromUtf8("txtEndDist_3")) + self.txtEdgeDist_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtEdgeDist_3.setGeometry(QtCore.QRect(181, 320, 130, 25)) + self.txtEdgeDist_3.setReadOnly(True) + self.txtEdgeDist_3.setObjectName(_fromUtf8("txtEdgeDist_3")) + self.txtWeldThick_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtWeldThick_3.setGeometry(QtCore.QRect(181, 380, 130, 25)) + self.txtWeldThick_3.setReadOnly(True) + self.txtWeldThick_3.setObjectName(_fromUtf8("txtWeldThick_3")) + self.txtResltShr_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtResltShr_3.setGeometry(QtCore.QRect(181, 410, 130, 25)) + self.txtResltShr_3.setReadOnly(True) + self.txtResltShr_3.setObjectName(_fromUtf8("txtResltShr_3")) + self.txtWeldStrng_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtWeldStrng_3.setGeometry(QtCore.QRect(181, 440, 130, 25)) + self.txtWeldStrng_3.setReadOnly(True) + self.txtWeldStrng_3.setObjectName(_fromUtf8("txtWeldStrng_3")) + self.txtPlateThick_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtPlateThick_3.setGeometry(QtCore.QRect(181, 510, 130, 25)) + self.txtPlateThick_3.setReadOnly(True) + self.txtPlateThick_3.setObjectName(_fromUtf8("txtPlateThick_3")) + self.label_60 = QtGui.QLabel(self.outputFrame_3) + self.label_60.setGeometry(QtCore.QRect(4, 30, 66, 17)) + self.label_60.setObjectName(_fromUtf8("label_60")) + self.label_61 = QtGui.QLabel(self.outputFrame_3) + self.label_61.setGeometry(QtCore.QRect(10, 50, 170, 25)) + self.label_61.setObjectName(_fromUtf8("label_61")) + self.label_62 = QtGui.QLabel(self.outputFrame_3) + self.label_62.setGeometry(QtCore.QRect(10, 80, 150, 25)) + self.label_62.setObjectName(_fromUtf8("label_62")) + self.labl123_3 = QtGui.QLabel(self.outputFrame_3) + self.labl123_3.setGeometry(QtCore.QRect(10, 110, 150, 25)) + self.labl123_3.setObjectName(_fromUtf8("labl123_3")) + self.t_3 = QtGui.QLabel(self.outputFrame_3) + self.t_3.setGeometry(QtCore.QRect(10, 140, 130, 25)) + self.t_3.setObjectName(_fromUtf8("t_3")) + self.label_63 = QtGui.QLabel(self.outputFrame_3) + self.label_63.setGeometry(QtCore.QRect(10, 230, 130, 25)) + self.label_63.setObjectName(_fromUtf8("label_63")) + self.label_64 = QtGui.QLabel(self.outputFrame_3) + self.label_64.setGeometry(QtCore.QRect(10, 290, 130, 25)) + self.label_64.setObjectName(_fromUtf8("label_64")) + self.label_65 = QtGui.QLabel(self.outputFrame_3) + self.label_65.setGeometry(QtCore.QRect(10, 380, 130, 25)) + self.label_65.setObjectName(_fromUtf8("label_65")) + self.label_66 = QtGui.QLabel(self.outputFrame_3) + self.label_66.setGeometry(QtCore.QRect(10, 440, 160, 25)) + self.label_66.setObjectName(_fromUtf8("label_66")) + self.label_67 = QtGui.QLabel(self.outputFrame_3) + self.label_67.setGeometry(QtCore.QRect(10, 260, 130, 25)) + self.label_67.setObjectName(_fromUtf8("label_67")) + self.label_68 = QtGui.QLabel(self.outputFrame_3) + self.label_68.setGeometry(QtCore.QRect(4, 350, 130, 25)) + self.label_68.setObjectName(_fromUtf8("label_68")) + self.label_69 = QtGui.QLabel(self.outputFrame_3) + self.label_69.setGeometry(QtCore.QRect(10, 320, 140, 25)) + self.label_69.setObjectName(_fromUtf8("label_69")) + self.label_70 = QtGui.QLabel(self.outputFrame_3) + self.label_70.setGeometry(QtCore.QRect(10, 510, 130, 25)) + self.label_70.setObjectName(_fromUtf8("label_70")) + self.label_71 = QtGui.QLabel(self.outputFrame_3) + self.label_71.setGeometry(QtCore.QRect(10, 410, 170, 25)) + self.label_71.setObjectName(_fromUtf8("label_71")) + self.label_72 = QtGui.QLabel(self.outputFrame_3) + self.label_72.setGeometry(QtCore.QRect(10, 540, 160, 25)) + self.label_72.setObjectName(_fromUtf8("label_72")) + self.label_73 = QtGui.QLabel(self.outputFrame_3) + self.label_73.setGeometry(QtCore.QRect(4, 480, 130, 25)) + self.label_73.setObjectName(_fromUtf8("label_73")) + self.txtExtMomnt_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtExtMomnt_3.setGeometry(QtCore.QRect(180, 540, 130, 25)) + self.txtExtMomnt_3.setReadOnly(True) + self.txtExtMomnt_3.setObjectName(_fromUtf8("txtExtMomnt_3")) + self.txtMomntCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtMomntCapacity_3.setGeometry(QtCore.QRect(180, 570, 130, 25)) + self.txtMomntCapacity_3.setReadOnly(True) + self.txtMomntCapacity_3.setObjectName(_fromUtf8("txtMomntCapacity_3")) + self.label_74 = QtGui.QLabel(self.outputFrame_3) + self.label_74.setGeometry(QtCore.QRect(10, 570, 170, 25)) + self.label_74.setObjectName(_fromUtf8("label_74")) + self.lbl_col_3 = QtGui.QLabel(self.outputFrame_3) + self.lbl_col_3.setGeometry(QtCore.QRect(10, 200, 130, 25)) + self.lbl_col_3.setObjectName(_fromUtf8("lbl_col_3")) + self.lbl_row_3 = QtGui.QLabel(self.outputFrame_3) + self.lbl_row_3.setGeometry(QtCore.QRect(10, 170, 130, 25)) + self.lbl_row_3.setObjectName(_fromUtf8("lbl_row_3")) + self.lineEdit_5 = QtGui.QLineEdit(self.outputFrame_3) + self.lineEdit_5.setGeometry(QtCore.QRect(180, 170, 130, 25)) + self.lineEdit_5.setObjectName(_fromUtf8("lineEdit_5")) + self.lineEdit_6 = QtGui.QLineEdit(self.outputFrame_3) + self.lineEdit_6.setGeometry(QtCore.QRect(180, 200, 130, 25)) + self.lineEdit_6.setObjectName(_fromUtf8("lineEdit_6")) + self.label_75 = QtGui.QLabel(self.outputFrame_3) + self.label_75.setGeometry(QtCore.QRect(120, 0, 60, 31)) + self.label_75.setObjectName(_fromUtf8("label_75")) + self.pushButton_3 = QtGui.QPushButton(self.outputFrame_3) + self.pushButton_3.setGeometry(QtCore.QRect(20, 620, 40, 50)) + self.pushButton_3.setText(_fromUtf8("")) + self.pushButton_3.setIcon(icon11) + self.pushButton_3.setIconSize(QtCore.QSize(40, 50)) + self.pushButton_3.setCheckable(False) + self.pushButton_3.setAutoDefault(False) + self.pushButton_3.setDefault(False) + self.pushButton_3.setFlat(False) + self.pushButton_3.setObjectName(_fromUtf8("pushButton_3")) + self.btnReset_3 = QtGui.QPushButton(self.dockWidgetContents) + self.btnReset_3.setGeometry(QtCore.QRect(130, 1239, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnReset_3.setFont(font) + self.btnReset_3.setObjectName(_fromUtf8("btnReset_3")) + self.btnDesign_3 = QtGui.QPushButton(self.dockWidgetContents) + self.btnDesign_3.setGeometry(QtCore.QRect(250, 1239, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnDesign_3.setFont(font) + self.btnDesign_3.setAutoDefault(False) + self.btnDesign_3.setDefault(False) + self.btnDesign_3.setFlat(False) + self.btnDesign_3.setObjectName(_fromUtf8("btnDesign_3")) + self.outputFrame_4 = QtGui.QFrame(self.dockWidgetContents) + self.outputFrame_4.setGeometry(QtCore.QRect(1048, 580, 320, 690)) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputFrame_4.sizePolicy().hasHeightForWidth()) + self.outputFrame_4.setSizePolicy(sizePolicy) + self.outputFrame_4.setMinimumSize(QtCore.QSize(320, 690)) + self.outputFrame_4.setFrameShape(QtGui.QFrame.StyledPanel) + self.outputFrame_4.setFrameShadow(QtGui.QFrame.Raised) + self.outputFrame_4.setObjectName(_fromUtf8("outputFrame_4")) + self.txtShrCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtShrCapacity_4.setGeometry(QtCore.QRect(181, 50, 130, 25)) + self.txtShrCapacity_4.setText(_fromUtf8("")) + self.txtShrCapacity_4.setReadOnly(True) + self.txtShrCapacity_4.setObjectName(_fromUtf8("txtShrCapacity_4")) + self.txtbearCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtbearCapacity_4.setGeometry(QtCore.QRect(181, 80, 130, 25)) + self.txtbearCapacity_4.setReadOnly(True) + self.txtbearCapacity_4.setObjectName(_fromUtf8("txtbearCapacity_4")) + self.txtBoltCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtBoltCapacity_4.setGeometry(QtCore.QRect(181, 110, 130, 25)) + self.txtBoltCapacity_4.setReadOnly(True) + self.txtBoltCapacity_4.setObjectName(_fromUtf8("txtBoltCapacity_4")) + self.txtNoBolts_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtNoBolts_4.setGeometry(QtCore.QRect(181, 140, 130, 25)) + self.txtNoBolts_4.setReadOnly(True) + self.txtNoBolts_4.setObjectName(_fromUtf8("txtNoBolts_4")) + self.txtPitch_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtPitch_4.setGeometry(QtCore.QRect(181, 230, 130, 25)) + self.txtPitch_4.setReadOnly(True) + self.txtPitch_4.setObjectName(_fromUtf8("txtPitch_4")) + self.txtGuage_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtGuage_4.setGeometry(QtCore.QRect(181, 260, 130, 25)) + self.txtGuage_4.setReadOnly(True) + self.txtGuage_4.setObjectName(_fromUtf8("txtGuage_4")) + self.txtEndDist_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtEndDist_4.setGeometry(QtCore.QRect(181, 290, 130, 25)) + self.txtEndDist_4.setReadOnly(True) + self.txtEndDist_4.setObjectName(_fromUtf8("txtEndDist_4")) + self.txtEdgeDist_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtEdgeDist_4.setGeometry(QtCore.QRect(181, 320, 130, 25)) + self.txtEdgeDist_4.setReadOnly(True) + self.txtEdgeDist_4.setObjectName(_fromUtf8("txtEdgeDist_4")) + self.txtWeldThick_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtWeldThick_4.setGeometry(QtCore.QRect(181, 380, 130, 25)) + self.txtWeldThick_4.setReadOnly(True) + self.txtWeldThick_4.setObjectName(_fromUtf8("txtWeldThick_4")) + self.txtResltShr_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtResltShr_4.setGeometry(QtCore.QRect(181, 410, 130, 25)) + self.txtResltShr_4.setReadOnly(True) + self.txtResltShr_4.setObjectName(_fromUtf8("txtResltShr_4")) + self.txtWeldStrng_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtWeldStrng_4.setGeometry(QtCore.QRect(181, 440, 130, 25)) + self.txtWeldStrng_4.setReadOnly(True) + self.txtWeldStrng_4.setObjectName(_fromUtf8("txtWeldStrng_4")) + self.txtPlateThick_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtPlateThick_4.setGeometry(QtCore.QRect(181, 510, 130, 25)) + self.txtPlateThick_4.setReadOnly(True) + self.txtPlateThick_4.setObjectName(_fromUtf8("txtPlateThick_4")) + self.label_76 = QtGui.QLabel(self.outputFrame_4) + self.label_76.setGeometry(QtCore.QRect(4, 30, 66, 17)) + self.label_76.setObjectName(_fromUtf8("label_76")) + self.label_77 = QtGui.QLabel(self.outputFrame_4) + self.label_77.setGeometry(QtCore.QRect(10, 50, 170, 25)) + self.label_77.setObjectName(_fromUtf8("label_77")) + self.label_78 = QtGui.QLabel(self.outputFrame_4) + self.label_78.setGeometry(QtCore.QRect(10, 80, 150, 25)) + self.label_78.setObjectName(_fromUtf8("label_78")) + self.labl123_4 = QtGui.QLabel(self.outputFrame_4) + self.labl123_4.setGeometry(QtCore.QRect(10, 110, 150, 25)) + self.labl123_4.setObjectName(_fromUtf8("labl123_4")) + self.t_4 = QtGui.QLabel(self.outputFrame_4) + self.t_4.setGeometry(QtCore.QRect(10, 140, 130, 25)) + self.t_4.setObjectName(_fromUtf8("t_4")) + self.label_79 = QtGui.QLabel(self.outputFrame_4) + self.label_79.setGeometry(QtCore.QRect(10, 230, 130, 25)) + self.label_79.setObjectName(_fromUtf8("label_79")) + self.label_80 = QtGui.QLabel(self.outputFrame_4) + self.label_80.setGeometry(QtCore.QRect(10, 290, 130, 25)) + self.label_80.setObjectName(_fromUtf8("label_80")) + self.label_81 = QtGui.QLabel(self.outputFrame_4) + self.label_81.setGeometry(QtCore.QRect(10, 380, 130, 25)) + self.label_81.setObjectName(_fromUtf8("label_81")) + self.label_82 = QtGui.QLabel(self.outputFrame_4) + self.label_82.setGeometry(QtCore.QRect(10, 440, 160, 25)) + self.label_82.setObjectName(_fromUtf8("label_82")) + self.label_83 = QtGui.QLabel(self.outputFrame_4) + self.label_83.setGeometry(QtCore.QRect(10, 260, 130, 25)) + self.label_83.setObjectName(_fromUtf8("label_83")) + self.label_84 = QtGui.QLabel(self.outputFrame_4) + self.label_84.setGeometry(QtCore.QRect(4, 350, 130, 25)) + self.label_84.setObjectName(_fromUtf8("label_84")) + self.label_85 = QtGui.QLabel(self.outputFrame_4) + self.label_85.setGeometry(QtCore.QRect(10, 320, 140, 25)) + self.label_85.setObjectName(_fromUtf8("label_85")) + self.label_86 = QtGui.QLabel(self.outputFrame_4) + self.label_86.setGeometry(QtCore.QRect(10, 510, 130, 25)) + self.label_86.setObjectName(_fromUtf8("label_86")) + self.label_87 = QtGui.QLabel(self.outputFrame_4) + self.label_87.setGeometry(QtCore.QRect(10, 410, 170, 25)) + self.label_87.setObjectName(_fromUtf8("label_87")) + self.label_88 = QtGui.QLabel(self.outputFrame_4) + self.label_88.setGeometry(QtCore.QRect(10, 540, 160, 25)) + self.label_88.setObjectName(_fromUtf8("label_88")) + self.label_89 = QtGui.QLabel(self.outputFrame_4) + self.label_89.setGeometry(QtCore.QRect(4, 480, 130, 25)) + self.label_89.setObjectName(_fromUtf8("label_89")) + self.txtExtMomnt_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtExtMomnt_4.setGeometry(QtCore.QRect(180, 540, 130, 25)) + self.txtExtMomnt_4.setReadOnly(True) + self.txtExtMomnt_4.setObjectName(_fromUtf8("txtExtMomnt_4")) + self.txtMomntCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtMomntCapacity_4.setGeometry(QtCore.QRect(180, 570, 130, 25)) + self.txtMomntCapacity_4.setReadOnly(True) + self.txtMomntCapacity_4.setObjectName(_fromUtf8("txtMomntCapacity_4")) + self.label_90 = QtGui.QLabel(self.outputFrame_4) + self.label_90.setGeometry(QtCore.QRect(10, 570, 170, 25)) + self.label_90.setObjectName(_fromUtf8("label_90")) + self.lbl_col_4 = QtGui.QLabel(self.outputFrame_4) + self.lbl_col_4.setGeometry(QtCore.QRect(10, 200, 130, 25)) + self.lbl_col_4.setObjectName(_fromUtf8("lbl_col_4")) + self.lbl_row_4 = QtGui.QLabel(self.outputFrame_4) + self.lbl_row_4.setGeometry(QtCore.QRect(10, 170, 130, 25)) + self.lbl_row_4.setObjectName(_fromUtf8("lbl_row_4")) + self.lineEdit_7 = QtGui.QLineEdit(self.outputFrame_4) + self.lineEdit_7.setGeometry(QtCore.QRect(180, 170, 130, 25)) + self.lineEdit_7.setObjectName(_fromUtf8("lineEdit_7")) + self.lineEdit_8 = QtGui.QLineEdit(self.outputFrame_4) + self.lineEdit_8.setGeometry(QtCore.QRect(180, 200, 130, 25)) + self.lineEdit_8.setObjectName(_fromUtf8("lineEdit_8")) + self.label_91 = QtGui.QLabel(self.outputFrame_4) + self.label_91.setGeometry(QtCore.QRect(120, 0, 60, 31)) + self.label_91.setObjectName(_fromUtf8("label_91")) + self.pushButton_4 = QtGui.QPushButton(self.outputFrame_4) + self.pushButton_4.setGeometry(QtCore.QRect(20, 620, 40, 50)) + self.pushButton_4.setText(_fromUtf8("")) + self.pushButton_4.setIcon(icon11) + self.pushButton_4.setIconSize(QtCore.QSize(40, 50)) + self.pushButton_4.setCheckable(False) + self.pushButton_4.setAutoDefault(False) + self.pushButton_4.setDefault(False) + self.pushButton_4.setFlat(False) + self.pushButton_4.setObjectName(_fromUtf8("pushButton_4")) + self.btnReset_4 = QtGui.QPushButton(self.dockWidgetContents) + self.btnReset_4.setGeometry(QtCore.QRect(90, 1209, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnReset_4.setFont(font) + self.btnReset_4.setObjectName(_fromUtf8("btnReset_4")) + self.btnDesign_4 = QtGui.QPushButton(self.dockWidgetContents) + self.btnDesign_4.setGeometry(QtCore.QRect(210, 1209, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnDesign_4.setFont(font) + self.btnDesign_4.setAutoDefault(False) + self.btnDesign_4.setDefault(False) + self.btnDesign_4.setFlat(False) + self.btnDesign_4.setObjectName(_fromUtf8("btnDesign_4")) + self.txtPlateWidth = QtGui.QLineEdit(self.dockWidgetContents) + self.txtPlateWidth.setGeometry(QtCore.QRect(150, 510, 160, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtPlateWidth.setFont(font) + self.txtPlateWidth.setObjectName(_fromUtf8("txtPlateWidth")) + self.btn_Reset = QtGui.QPushButton(self.dockWidgetContents) + self.btn_Reset.setGeometry(QtCore.QRect(20, 630, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btn_Reset.setFont(font) + self.btn_Reset.setObjectName(_fromUtf8("btn_Reset")) + self.btn_Design = QtGui.QPushButton(self.dockWidgetContents) + self.btn_Design.setGeometry(QtCore.QRect(140, 630, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btn_Design.setFont(font) + self.btn_Design.setObjectName(_fromUtf8("btn_Design")) + self.combo_Beam = QtGui.QComboBox(self.dockWidgetContents) + self.combo_Beam.setGeometry(QtCore.QRect(150, 45, 161, 25)) + self.combo_Beam.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.combo_Beam.setMaxVisibleItems(5) + self.combo_Beam.setObjectName(_fromUtf8("combo_Beam")) + self.comboWldSize = QtGui.QComboBox(self.dockWidgetContents) + self.comboWldSize.setGeometry(QtCore.QRect(150, 570, 160, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboWldSize.setFont(font) + self.comboWldSize.setFocusPolicy(QtCore.Qt.WheelFocus) + self.comboWldSize.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboWldSize.setMaxVisibleItems(5) + self.comboWldSize.setObjectName(_fromUtf8("comboWldSize")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.lbl_connectivity = QtGui.QLabel(self.dockWidgetContents) + self.lbl_connectivity.setGeometry(QtCore.QRect(180, 210, 60, 50)) + self.lbl_connectivity.setScaledContents(True) + self.lbl_connectivity.setObjectName(_fromUtf8("lbl_connectivity")) + self.label_9 = QtGui.QLabel(self.dockWidgetContents) + self.label_9.setGeometry(QtCore.QRect(6, 45, 131, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_9.setFont(font) + self.label_9.setObjectName(_fromUtf8("label_9")) + self.inputDock.setWidget(self.dockWidgetContents) + MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.inputDock) + self.outputDock = QtGui.QDockWidget(MainWindow) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputDock.sizePolicy().hasHeightForWidth()) + self.outputDock.setSizePolicy(sizePolicy) + self.outputDock.setMinimumSize(QtCore.QSize(125, 710)) + self.outputDock.setMaximumSize(QtCore.QSize(310, 710)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.outputDock.setFont(font) + self.outputDock.setObjectName(_fromUtf8("outputDock")) + self.dockWidgetContents_2 = QtGui.QWidget() + self.dockWidgetContents_2.setObjectName(_fromUtf8("dockWidgetContents_2")) + self.txtNoBolts = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtNoBolts.setGeometry(QtCore.QRect(200, 120, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtNoBolts.setFont(font) + self.txtNoBolts.setReadOnly(True) + self.txtNoBolts.setObjectName(_fromUtf8("txtNoBolts")) + self.t_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.t_7.setGeometry(QtCore.QRect(0, 120, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.t_7.setFont(font) + self.t_7.setObjectName(_fromUtf8("t_7")) + self.txtShrCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtShrCapacity.setGeometry(QtCore.QRect(200, 30, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtShrCapacity.setFont(font) + self.txtShrCapacity.setText(_fromUtf8("")) + self.txtShrCapacity.setReadOnly(True) + self.txtShrCapacity.setObjectName(_fromUtf8("txtShrCapacity")) + self.txtPitch = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtPitch.setGeometry(QtCore.QRect(200, 240, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtPitch.setFont(font) + self.txtPitch.setReadOnly(True) + self.txtPitch.setObjectName(_fromUtf8("txtPitch")) + self.txtGuage = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtGuage.setGeometry(QtCore.QRect(200, 270, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtGuage.setFont(font) + self.txtGuage.setReadOnly(True) + self.txtGuage.setObjectName(_fromUtf8("txtGuage")) + self.txtBoltCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtBoltCapacity.setGeometry(QtCore.QRect(200, 90, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtBoltCapacity.setFont(font) + self.txtBoltCapacity.setReadOnly(True) + self.txtBoltCapacity.setObjectName(_fromUtf8("txtBoltCapacity")) + self.txt_col = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txt_col.setGeometry(QtCore.QRect(200, 210, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txt_col.setFont(font) + self.txt_col.setReadOnly(True) + self.txt_col.setObjectName(_fromUtf8("txt_col")) + self.txt_row = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txt_row.setGeometry(QtCore.QRect(200, 180, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txt_row.setFont(font) + self.txt_row.setReadOnly(True) + self.txt_row.setObjectName(_fromUtf8("txt_row")) + self.label_152 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_152.setGeometry(QtCore.QRect(0, 270, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_152.setFont(font) + self.label_152.setObjectName(_fromUtf8("label_152")) + self.labl123_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.labl123_7.setGeometry(QtCore.QRect(0, 90, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.labl123_7.setFont(font) + self.labl123_7.setObjectName(_fromUtf8("labl123_7")) + self.txtbearCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtbearCapacity.setGeometry(QtCore.QRect(200, 60, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtbearCapacity.setFont(font) + self.txtbearCapacity.setReadOnly(True) + self.txtbearCapacity.setObjectName(_fromUtf8("txtbearCapacity")) + self.label_153 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_153.setGeometry(QtCore.QRect(0, 300, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_153.setFont(font) + self.label_153.setObjectName(_fromUtf8("label_153")) + self.lbl_col_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.lbl_col_7.setGeometry(QtCore.QRect(0, 210, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_col_7.setFont(font) + self.lbl_col_7.setObjectName(_fromUtf8("lbl_col_7")) + self.label_154 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_154.setGeometry(QtCore.QRect(0, 240, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_154.setFont(font) + self.label_154.setObjectName(_fromUtf8("label_154")) + self.txtEdgeDist = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtEdgeDist.setGeometry(QtCore.QRect(200, 330, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtEdgeDist.setFont(font) + self.txtEdgeDist.setReadOnly(True) + self.txtEdgeDist.setObjectName(_fromUtf8("txtEdgeDist")) + self.lbl_row_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.lbl_row_7.setGeometry(QtCore.QRect(0, 180, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_row_7.setFont(font) + self.lbl_row_7.setObjectName(_fromUtf8("lbl_row_7")) + self.label_155 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_155.setGeometry(QtCore.QRect(0, 330, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_155.setFont(font) + self.label_155.setObjectName(_fromUtf8("label_155")) + self.label_156 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_156.setGeometry(QtCore.QRect(0, 30, 161, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_156.setFont(font) + self.label_156.setObjectName(_fromUtf8("label_156")) + self.txtEndDist = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtEndDist.setGeometry(QtCore.QRect(200, 300, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtEndDist.setFont(font) + self.txtEndDist.setReadOnly(True) + self.txtEndDist.setObjectName(_fromUtf8("txtEndDist")) + self.label_157 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_157.setGeometry(QtCore.QRect(-1, 0, 66, 20)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_157.setFont(font) + self.label_157.setObjectName(_fromUtf8("label_157")) + self.label_158 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_158.setGeometry(QtCore.QRect(0, 60, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_158.setFont(font) + self.label_158.setObjectName(_fromUtf8("label_158")) + self.label_160 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_160.setGeometry(QtCore.QRect(0, 480, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_160.setFont(font) + self.label_160.setObjectName(_fromUtf8("label_160")) + self.txtMomntCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtMomntCapacity.setGeometry(QtCore.QRect(200, 480, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtMomntCapacity.setFont(font) + self.txtMomntCapacity.setReadOnly(True) + self.txtMomntCapacity.setObjectName(_fromUtf8("txtMomntCapacity")) + self.label_161 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_161.setGeometry(QtCore.QRect(-1, 360, 130, 25)) + font = QtGui.QFont() + font.setPointSize(11) + self.label_161.setFont(font) + self.label_161.setObjectName(_fromUtf8("label_161")) + self.txtExtMomnt = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtExtMomnt.setGeometry(QtCore.QRect(200, 450, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtExtMomnt.setFont(font) + self.txtExtMomnt.setReadOnly(True) + self.txtExtMomnt.setObjectName(_fromUtf8("txtExtMomnt")) + self.label_162 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_162.setGeometry(QtCore.QRect(0, 450, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_162.setFont(font) + self.label_162.setFocusPolicy(QtCore.Qt.NoFocus) + self.label_162.setObjectName(_fromUtf8("label_162")) + self.txtWeldStrng = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtWeldStrng.setGeometry(QtCore.QRect(200, 570, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtWeldStrng.setFont(font) + self.txtWeldStrng.setReadOnly(True) + self.txtWeldStrng.setObjectName(_fromUtf8("txtWeldStrng")) + self.label_163 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_163.setGeometry(QtCore.QRect(0, 540, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_163.setFont(font) + self.label_163.setObjectName(_fromUtf8("label_163")) + self.label_164 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_164.setGeometry(QtCore.QRect(3, 570, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_164.setFont(font) + self.label_164.setObjectName(_fromUtf8("label_164")) + self.txtResltShr = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtResltShr.setGeometry(QtCore.QRect(200, 540, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtResltShr.setFont(font) + self.txtResltShr.setReadOnly(True) + self.txtResltShr.setObjectName(_fromUtf8("txtResltShr")) + self.label_166 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_166.setGeometry(QtCore.QRect(-1, 510, 130, 25)) + font = QtGui.QFont() + font.setPointSize(11) + self.label_166.setFont(font) + self.label_166.setObjectName(_fromUtf8("label_166")) + self.btn_SaveMessages = QtGui.QPushButton(self.dockWidgetContents_2) + self.btn_SaveMessages.setGeometry(QtCore.QRect(50, 610, 200, 30)) + self.btn_SaveMessages.setObjectName(_fromUtf8("btn_SaveMessages")) + self.btn_CreateDesign = QtGui.QPushButton(self.dockWidgetContents_2) + self.btn_CreateDesign.setGeometry(QtCore.QRect(50, 650, 200, 30)) + self.btn_CreateDesign.setObjectName(_fromUtf8("btn_CreateDesign")) + self.plateHeight = QtGui.QLabel(self.dockWidgetContents_2) + self.plateHeight.setGeometry(QtCore.QRect(0, 390, 100, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.plateHeight.setFont(font) + self.plateHeight.setObjectName(_fromUtf8("plateHeight")) + self.txtplate_ht = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtplate_ht.setGeometry(QtCore.QRect(200, 390, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtplate_ht.setFont(font) + self.txtplate_ht.setObjectName(_fromUtf8("txtplate_ht")) + self.txtplate_width = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtplate_width.setGeometry(QtCore.QRect(200, 420, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtplate_width.setFont(font) + self.txtplate_width.setObjectName(_fromUtf8("txtplate_width")) + self.label_2 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_2.setGeometry(QtCore.QRect(0, 420, 100, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setObjectName(_fromUtf8("label_2")) + self.label_10 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_10.setGeometry(QtCore.QRect(0, 150, 200, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_10.setFont(font) + self.label_10.setObjectName(_fromUtf8("label_10")) + self.txtboltgrpcapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtboltgrpcapacity.setGeometry(QtCore.QRect(200, 150, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtboltgrpcapacity.setFont(font) + self.txtboltgrpcapacity.setObjectName(_fromUtf8("txtboltgrpcapacity")) + self.outputDock.setWidget(self.dockWidgetContents_2) + MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.outputDock) + self.actionInput = QtGui.QAction(MainWindow) + icon12 = QtGui.QIcon() + icon12.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/input.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionInput.setIcon(icon12) + self.actionInput.setObjectName(_fromUtf8("actionInput")) + self.actionInputwindow = QtGui.QAction(MainWindow) + icon13 = QtGui.QIcon() + icon13.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/inputview.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionInputwindow.setIcon(icon13) + self.actionInputwindow.setObjectName(_fromUtf8("actionInputwindow")) + self.actionNew = QtGui.QAction(MainWindow) + self.actionNew.setObjectName(_fromUtf8("actionNew")) + self.actionOpen = QtGui.QAction(MainWindow) + self.actionOpen.setObjectName(_fromUtf8("actionOpen")) + self.actionSave = QtGui.QAction(MainWindow) + self.actionSave.setObjectName(_fromUtf8("actionSave")) + self.actionSave_As = QtGui.QAction(MainWindow) + self.actionSave_As.setObjectName(_fromUtf8("actionSave_As")) + self.actionPrint = QtGui.QAction(MainWindow) + self.actionPrint.setObjectName(_fromUtf8("actionPrint")) + self.actionCut = QtGui.QAction(MainWindow) + self.actionCut.setObjectName(_fromUtf8("actionCut")) + self.actionCopy = QtGui.QAction(MainWindow) + self.actionCopy.setObjectName(_fromUtf8("actionCopy")) + self.actionPaste = QtGui.QAction(MainWindow) + self.actionPaste.setObjectName(_fromUtf8("actionPaste")) + self.actionInput_Browser = QtGui.QAction(MainWindow) + self.actionInput_Browser.setObjectName(_fromUtf8("actionInput_Browser")) + self.actionOutput_Browser = QtGui.QAction(MainWindow) + self.actionOutput_Browser.setObjectName(_fromUtf8("actionOutput_Browser")) + self.actionAbout_Osdag = QtGui.QAction(MainWindow) + self.actionAbout_Osdag.setObjectName(_fromUtf8("actionAbout_Osdag")) + self.actionBeam = QtGui.QAction(MainWindow) + self.actionBeam.setObjectName(_fromUtf8("actionBeam")) + self.actionColumn = QtGui.QAction(MainWindow) + self.actionColumn.setObjectName(_fromUtf8("actionColumn")) + self.actionFinplate = QtGui.QAction(MainWindow) + self.actionFinplate.setObjectName(_fromUtf8("actionFinplate")) + self.actionBolt = QtGui.QAction(MainWindow) + self.actionBolt.setObjectName(_fromUtf8("actionBolt")) + self.action2D_view = QtGui.QAction(MainWindow) + self.action2D_view.setObjectName(_fromUtf8("action2D_view")) + self.actionZoom_in = QtGui.QAction(MainWindow) + self.actionZoom_in.setObjectName(_fromUtf8("actionZoom_in")) + self.actionZoom_out = QtGui.QAction(MainWindow) + self.actionZoom_out.setObjectName(_fromUtf8("actionZoom_out")) + self.actionPan = QtGui.QAction(MainWindow) + self.actionPan.setObjectName(_fromUtf8("actionPan")) + self.actionRotate_3D_model = QtGui.QAction(MainWindow) + self.actionRotate_3D_model.setObjectName(_fromUtf8("actionRotate_3D_model")) + self.actionView_2D_on_XY = QtGui.QAction(MainWindow) + self.actionView_2D_on_XY.setObjectName(_fromUtf8("actionView_2D_on_XY")) + self.actionView_2D_on_YZ = QtGui.QAction(MainWindow) + self.actionView_2D_on_YZ.setObjectName(_fromUtf8("actionView_2D_on_YZ")) + self.actionView_2D_on_ZX = QtGui.QAction(MainWindow) + self.actionView_2D_on_ZX.setObjectName(_fromUtf8("actionView_2D_on_ZX")) + self.actionModel = QtGui.QAction(MainWindow) + self.actionModel.setObjectName(_fromUtf8("actionModel")) + self.actionEnlarge_font_size = QtGui.QAction(MainWindow) + self.actionEnlarge_font_size.setObjectName(_fromUtf8("actionEnlarge_font_size")) + self.actionReduce_font_size = QtGui.QAction(MainWindow) + self.actionReduce_font_size.setObjectName(_fromUtf8("actionReduce_font_size")) + self.actionSave_3D_model_as = QtGui.QAction(MainWindow) + self.actionSave_3D_model_as.setObjectName(_fromUtf8("actionSave_3D_model_as")) + self.actionSave_current_2D_image_as = QtGui.QAction(MainWindow) + self.actionSave_current_2D_image_as.setObjectName(_fromUtf8("actionSave_current_2D_image_as")) + self.actionSave_log_messages = QtGui.QAction(MainWindow) + self.actionSave_log_messages.setObjectName(_fromUtf8("actionSave_log_messages")) + self.actionCreate_design_report = QtGui.QAction(MainWindow) + self.actionCreate_design_report.setObjectName(_fromUtf8("actionCreate_design_report")) + self.actionQuit_fin_plate_design = QtGui.QAction(MainWindow) + self.actionQuit_fin_plate_design.setObjectName(_fromUtf8("actionQuit_fin_plate_design")) + self.menuFile.addAction(self.actionNew) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionOpen) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave_3D_model_as) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave_current_2D_image_as) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave_log_messages) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionCreate_design_report) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionQuit_fin_plate_design) + self.menuEdit.addAction(self.actionCut) + self.menuEdit.addAction(self.actionCopy) + self.menuEdit.addAction(self.actionPaste) + self.menuView.addAction(self.actionEnlarge_font_size) + self.menuView.addSeparator() + self.menuView.addAction(self.actionReduce_font_size) + self.menuHelp.addAction(self.actionAbout_Osdag) + self.menuGraphics.addAction(self.actionZoom_in) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionZoom_out) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionPan) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionRotate_3D_model) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionView_2D_on_XY) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionView_2D_on_YZ) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionView_2D_on_ZX) + self.menubar.addAction(self.menuFile.menuAction()) + self.menubar.addAction(self.menuEdit.menuAction()) + self.menubar.addAction(self.menuView.menuAction()) + self.menubar.addAction(self.menuGraphics.menuAction()) + self.menubar.addAction(self.menuHelp.menuAction()) + + self.retranslateUi(MainWindow) + self.mytabWidget.setCurrentIndex(-1) + self.comboWldSize.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + MainWindow.setWindowTitle(_translate("MainWindow", "Fin Plate", None)) + self.btnInput.setText(_translate("MainWindow", "input", None)) + self.btnOutput.setText(_translate("MainWindow", "...", None)) + self.btnZmOut.setToolTip(_translate("MainWindow", "Zoom In", None)) + self.btnZmOut.setText(_translate("MainWindow", "...", None)) + self.btnZmIn.setToolTip(_translate("MainWindow", "Zoom Out", None)) + self.btnZmIn.setText(_translate("MainWindow", "...", None)) + self.btnSvgSave.setToolTip(_translate("MainWindow", "Save Image", None)) + self.btnSvgSave.setText(_translate("MainWindow", "...", None)) + self.btnTotatAcw.setToolTip(_translate("MainWindow", "Rotate Left", None)) + self.btnTotatAcw.setText(_translate("MainWindow", "...", None)) + self.btnRotatCw.setToolTip(_translate("MainWindow", "Rotate Right", None)) + self.btnRotatCw.setText(_translate("MainWindow", "...", None)) + self.btn3D.setToolTip(_translate("MainWindow", "3D Model", None)) + self.btn3D.setText(_translate("MainWindow", "3D", None)) + self.chkBxBeam.setText(_translate("MainWindow", "Beam", None)) + self.chkBxCol.setText(_translate("MainWindow", "Column", None)) + self.chkBxFinplate.setText(_translate("MainWindow", "Finplate", None)) + self.btn_front.setToolTip(_translate("MainWindow", "Front View", None)) + self.btn_top.setToolTip(_translate("MainWindow", "Top View", None)) + self.btn_side.setToolTip(_translate("MainWindow", "Side View", None)) + self.menuFile.setTitle(_translate("MainWindow", "File", None)) + self.menuEdit.setTitle(_translate("MainWindow", "Edit", None)) + self.menuView.setTitle(_translate("MainWindow", "View", None)) + self.menuHelp.setTitle(_translate("MainWindow", "Help", None)) + self.menuGraphics.setTitle(_translate("MainWindow", "Graphics", None)) + self.inputDock.setWindowTitle(_translate("MainWindow", "INPUT", None)) + self.txtFy.setPlaceholderText(_translate("MainWindow", "000.000", None)) + self.label_3.setText(_translate("MainWindow", "<html><head/><body><p>Column section *</p></body></html>", None)) + self.comboConnLoc.setItemText(0, _translate("MainWindow", "Select Connectivity", None)) + self.comboConnLoc.setItemText(1, _translate("MainWindow", "Column flange-Beam web", None)) + self.comboConnLoc.setItemText(2, _translate("MainWindow", "Column web-Beam web", None)) + self.txtFu.setPlaceholderText(_translate("MainWindow", "000.000", None)) + self.label.setText(_translate("MainWindow", "<html><head/><body><p>Connecting members</p></body></html>", None)) + self.label_4.setText(_translate("MainWindow", "<html><head/><body><p>Connectivity *</p></body></html>", None)) + self.lbl_fu.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-style:italic;\">f</span><span style=\" font-style:italic; vertical-align:sub;\">u </span>(MPa) * </p></body></html>", None)) + self.lbl_fy.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-style:italic;\">f</span><span style=\" vertical-align:sub;\">y (</span>MPa) *</p></body></html>", None)) + self.label_18.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Factored load</span></p></body></html>", None)) + self.lbl_shear.setText(_translate("MainWindow", "Shear force (kN) *", None)) + self.label_5.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_6.setText(_translate("MainWindow", "Grade *", None)) + self.label_7.setText(_translate("MainWindow", "<html><head/><body><p>Diameter (mm) <span style=\" color:#555500;\">*</span></p></body></html>", None)) + self.label_8.setText(_translate("MainWindow", "Type *", None)) + self.comboDaimeter.setItemText(0, _translate("MainWindow", "Diameter of Bolt", None)) + self.comboDaimeter.setItemText(1, _translate("MainWindow", "5", None)) + self.comboDaimeter.setItemText(2, _translate("MainWindow", "6", None)) + self.comboDaimeter.setItemText(3, _translate("MainWindow", "8", None)) + self.comboDaimeter.setItemText(4, _translate("MainWindow", "10", None)) + self.comboDaimeter.setItemText(5, _translate("MainWindow", "12", None)) + self.comboDaimeter.setItemText(6, _translate("MainWindow", "16", None)) + self.comboDaimeter.setItemText(7, _translate("MainWindow", "20", None)) + self.comboDaimeter.setItemText(8, _translate("MainWindow", "24", None)) + self.comboDaimeter.setItemText(9, _translate("MainWindow", "30", None)) + self.comboDaimeter.setItemText(10, _translate("MainWindow", "36", None)) + self.lbl_width_2.setText(_translate("MainWindow", "Width (mm)", None)) + self.label_40.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_41.setText(_translate("MainWindow", "<html><head/><body><p>Thickness (mm) *</p></body></html>", None)) + self.lbl_len_2.setText(_translate("MainWindow", "Height (mm)", None)) + self.comboPlateThick_2.setItemText(0, _translate("MainWindow", "Thickness of Plate", None)) + self.comboPlateThick_2.setItemText(1, _translate("MainWindow", "6", None)) + self.comboPlateThick_2.setItemText(2, _translate("MainWindow", "8", None)) + self.comboPlateThick_2.setItemText(3, _translate("MainWindow", "10", None)) + self.comboPlateThick_2.setItemText(4, _translate("MainWindow", "12", None)) + self.label_42.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_43.setText(_translate("MainWindow", "<html><head/><body><p>Thickness (mm) *</p></body></html>", None)) + self.label_44.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_45.setText(_translate("MainWindow", "Shear Capacity (kN)", None)) + self.label_46.setText(_translate("MainWindow", "<html><head/><body><p>Bearing Capacity (kN)</p></body></html>", None)) + self.labl123_2.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of Bolt (kN)</p></body></html>", None)) + self.t_2.setText(_translate("MainWindow", "No. of Bolts", None)) + self.label_47.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.label_48.setText(_translate("MainWindow", "End Distance (mm)", None)) + self.label_49.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_50.setText(_translate("MainWindow", "Weld Strength (kN/mm)", None)) + self.label_51.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.label_52.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_53.setText(_translate("MainWindow", "Edge Distance (mm)", None)) + self.label_54.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_55.setText(_translate("MainWindow", "<html><head/><body><p>Resultant Shear (kN/mm)</p></body></html>", None)) + self.label_56.setText(_translate("MainWindow", "External Moment (kNm)", None)) + self.label_57.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_58.setText(_translate("MainWindow", "Moment Capacity (KNm)", None)) + self.lbl_col_2.setText(_translate("MainWindow", "No. of Column", None)) + self.lbl_row_2.setText(_translate("MainWindow", "No. of Row", None)) + self.label_59.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; color:#00007f;\">OUTPUT</span></p></body></html>", None)) + self.btnReset_2.setText(_translate("MainWindow", "Reset", None)) + self.btnDesign_2.setText(_translate("MainWindow", "Design", None)) + self.label_60.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_61.setText(_translate("MainWindow", "Shear Capacity (kN)", None)) + self.label_62.setText(_translate("MainWindow", "<html><head/><body><p>Bearing Capacity (kN)</p></body></html>", None)) + self.labl123_3.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of Bolt (kN)</p></body></html>", None)) + self.t_3.setText(_translate("MainWindow", "No. of Bolts", None)) + self.label_63.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.label_64.setText(_translate("MainWindow", "End Distance (mm)", None)) + self.label_65.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_66.setText(_translate("MainWindow", "Weld Strength (kN/mm)", None)) + self.label_67.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.label_68.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_69.setText(_translate("MainWindow", "Edge Distance (mm)", None)) + self.label_70.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_71.setText(_translate("MainWindow", "<html><head/><body><p>Resultant Shear (kN/mm)</p></body></html>", None)) + self.label_72.setText(_translate("MainWindow", "External Moment (kNm)", None)) + self.label_73.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_74.setText(_translate("MainWindow", "Moment Capacity (KNm)", None)) + self.lbl_col_3.setText(_translate("MainWindow", "No. of Column", None)) + self.lbl_row_3.setText(_translate("MainWindow", "No. of Row", None)) + self.label_75.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; color:#00007f;\">OUTPUT</span></p></body></html>", None)) + self.btnReset_3.setText(_translate("MainWindow", "Reset", None)) + self.btnDesign_3.setText(_translate("MainWindow", "Design", None)) + self.label_76.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_77.setText(_translate("MainWindow", "Shear Capacity (kN)", None)) + self.label_78.setText(_translate("MainWindow", "<html><head/><body><p>Bearing Capacity (kN)</p></body></html>", None)) + self.labl123_4.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of Bolt (kN)</p></body></html>", None)) + self.t_4.setText(_translate("MainWindow", "No. of Bolts", None)) + self.label_79.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.label_80.setText(_translate("MainWindow", "End Distance (mm)", None)) + self.label_81.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_82.setText(_translate("MainWindow", "Weld Strength (kN/mm)", None)) + self.label_83.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.label_84.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_85.setText(_translate("MainWindow", "Edge Distance (mm)", None)) + self.label_86.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_87.setText(_translate("MainWindow", "<html><head/><body><p>Resultant Shear (kN/mm)</p></body></html>", None)) + self.label_88.setText(_translate("MainWindow", "External Moment (kNm)", None)) + self.label_89.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_90.setText(_translate("MainWindow", "Moment Capacity (KNm)", None)) + self.lbl_col_4.setText(_translate("MainWindow", "No. of Column", None)) + self.lbl_row_4.setText(_translate("MainWindow", "No. of Row", None)) + self.label_91.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; color:#00007f;\">OUTPUT</span></p></body></html>", None)) + self.btnReset_4.setText(_translate("MainWindow", "Reset", None)) + self.btnDesign_4.setText(_translate("MainWindow", "Design", None)) + self.btn_Reset.setText(_translate("MainWindow", "Reset", None)) + self.btn_Design.setText(_translate("MainWindow", "Design", None)) + self.comboWldSize.setItemText(0, _translate("MainWindow", "Select Weld Sizes", None)) + self.comboWldSize.setItemText(1, _translate("MainWindow", "3", None)) + self.comboWldSize.setItemText(2, _translate("MainWindow", "5", None)) + self.comboWldSize.setItemText(3, _translate("MainWindow", "6", None)) + self.comboWldSize.setItemText(4, _translate("MainWindow", "8", None)) + self.comboWldSize.setItemText(5, _translate("MainWindow", "10", None)) + self.label_9.setText(_translate("MainWindow", "Beam section *", None)) + self.outputDock.setWindowTitle(_translate("MainWindow", "OUTPUT", None)) + self.t_7.setText(_translate("MainWindow", "No. of bolts", None)) + self.label_152.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.labl123_7.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of bolt (kN)</p></body></html>", None)) + self.label_153.setText(_translate("MainWindow", "End distance (mm)", None)) + self.lbl_col_7.setText(_translate("MainWindow", "No. of columns", None)) + self.label_154.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.lbl_row_7.setText(_translate("MainWindow", "No. of rows", None)) + self.label_155.setText(_translate("MainWindow", "Edge distance (mm)", None)) + self.label_156.setText(_translate("MainWindow", "Shear capacity (kN)", None)) + self.label_157.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_158.setText(_translate("MainWindow", "<html><head/><body><p>Bearing capacity (kN)</p></body></html>", None)) + self.label_160.setText(_translate("MainWindow", "Moment capacity (kNm)", None)) + self.label_161.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_162.setText(_translate("MainWindow", "<html><head/><body><p>Moment demand (kNm)</p></body></html>", None)) + self.label_163.setText(_translate("MainWindow", "<html><head/><body><p>Shear demand (kN/mm)</p></body></html>", None)) + self.label_164.setText(_translate("MainWindow", "Weld strength (kN/mm)", None)) + self.label_166.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.btn_SaveMessages.setText(_translate("MainWindow", "Save messages", None)) + self.btn_CreateDesign.setText(_translate("MainWindow", "Create design report", None)) + self.plateHeight.setText(_translate("MainWindow", "Height (mm)", None)) + self.label_2.setText(_translate("MainWindow", "Width (mm)", None)) + self.label_10.setText(_translate("MainWindow", "Bolt group capacity (kN)", None)) + self.actionInput.setText(_translate("MainWindow", "Input", None)) + self.actionInput.setToolTip(_translate("MainWindow", "Input browser", None)) + self.actionInputwindow.setText(_translate("MainWindow", "inputwindow", None)) + self.actionNew.setText(_translate("MainWindow", "New", None)) + self.actionOpen.setText(_translate("MainWindow", "Open", None)) + self.actionSave.setText(_translate("MainWindow", "Save design", None)) + self.actionSave_As.setText(_translate("MainWindow", "Save As", None)) + self.actionPrint.setText(_translate("MainWindow", "Print", None)) + self.actionCut.setText(_translate("MainWindow", "Cut", None)) + self.actionCopy.setText(_translate("MainWindow", "Copy", None)) + self.actionPaste.setText(_translate("MainWindow", "Paste", None)) + self.actionInput_Browser.setText(_translate("MainWindow", "Input Browser", None)) + self.actionOutput_Browser.setText(_translate("MainWindow", "Output Browser", None)) + self.actionAbout_Osdag.setText(_translate("MainWindow", "About Finplate", None)) + self.actionBeam.setText(_translate("MainWindow", "Beam", None)) + self.actionColumn.setText(_translate("MainWindow", "Column", None)) + self.actionFinplate.setText(_translate("MainWindow", "Finplate", None)) + self.actionBolt.setText(_translate("MainWindow", "Bolt", None)) + self.action2D_view.setText(_translate("MainWindow", "2D view", None)) + self.actionZoom_in.setText(_translate("MainWindow", "Zoom in", None)) + self.actionZoom_out.setText(_translate("MainWindow", "Zoom out", None)) + self.actionPan.setText(_translate("MainWindow", "Pan", None)) + self.actionRotate_3D_model.setText(_translate("MainWindow", "Rotate 3D model", None)) + self.actionView_2D_on_XY.setText(_translate("MainWindow", "View 2D on XY", None)) + self.actionView_2D_on_YZ.setText(_translate("MainWindow", "View 2D on YZ", None)) + self.actionView_2D_on_ZX.setText(_translate("MainWindow", "View 2D on ZX", None)) + self.actionModel.setText(_translate("MainWindow", "Model", None)) + self.actionEnlarge_font_size.setText(_translate("MainWindow", "Enlarge font size", None)) + self.actionReduce_font_size.setText(_translate("MainWindow", "Reduce font size", None)) + self.actionSave_3D_model_as.setText(_translate("MainWindow", "Save 3D model as", None)) + self.actionSave_current_2D_image_as.setText(_translate("MainWindow", "Save 2D image as", None)) + self.actionSave_log_messages.setText(_translate("MainWindow", "Save log messages", None)) + self.actionCreate_design_report.setText(_translate("MainWindow", "Create design report", None)) + self.actionQuit_fin_plate_design.setText(_translate("MainWindow", "Quit fin plate design", None)) + +import icons_rc diff --git a/Connections/Shear/Finplate/ui_finPlate2.py b/Connections/Shear/Finplate/ui_finPlate2.py new file mode 100644 index 0000000..8b3060e --- /dev/null +++ b/Connections/Shear/Finplate/ui_finPlate2.py @@ -0,0 +1,1669 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'finPlate.ui' +# +# Created: Mon Jun 1 19:02:50 2015 +# by: PyQt4 UI code generator 4.10.4 +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore, QtGui + +try: + _fromUtf8 = QtCore.QString.fromUtf8 +except AttributeError: + def _fromUtf8(s): + return s + +try: + _encoding = QtGui.QApplication.UnicodeUTF8 + def _translate(context, text, disambig): + return QtGui.QApplication.translate(context, text, disambig, _encoding) +except AttributeError: + def _translate(context, text, disambig): + return QtGui.QApplication.translate(context, text, disambig) + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName(_fromUtf8("MainWindow")) + MainWindow.resize(1335, 767) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/download1.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + MainWindow.setWindowIcon(icon) + MainWindow.setIconSize(QtCore.QSize(20, 2)) + self.centralwidget = QtGui.QWidget(MainWindow) + self.centralwidget.setObjectName(_fromUtf8("centralwidget")) + self.verticalLayout_2 = QtGui.QVBoxLayout(self.centralwidget) + self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) + self.frame = QtGui.QFrame(self.centralwidget) + self.frame.setMinimumSize(QtCore.QSize(0, 28)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 28)) + self.frame.setFrameShape(QtGui.QFrame.NoFrame) + self.frame.setFrameShadow(QtGui.QFrame.Raised) + self.frame.setObjectName(_fromUtf8("frame")) + self.btnInput = QtGui.QToolButton(self.frame) + self.btnInput.setGeometry(QtCore.QRect(0, 0, 28, 28)) + self.btnInput.setFocusPolicy(QtCore.Qt.NoFocus) + self.btnInput.setLayoutDirection(QtCore.Qt.LeftToRight) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/input.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnInput.setIcon(icon1) + self.btnInput.setIconSize(QtCore.QSize(18, 18)) + self.btnInput.setObjectName(_fromUtf8("btnInput")) + self.btnOutput = QtGui.QToolButton(self.frame) + self.btnOutput.setGeometry(QtCore.QRect(30, 0, 28, 28)) + self.btnOutput.setFocusPolicy(QtCore.Qt.NoFocus) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/output.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnOutput.setIcon(icon2) + self.btnOutput.setIconSize(QtCore.QSize(18, 18)) + self.btnOutput.setObjectName(_fromUtf8("btnOutput")) + self.btnZmOut = QtGui.QToolButton(self.frame) + self.btnZmOut.setGeometry(QtCore.QRect(80, 0, 28, 28)) + self.btnZmOut.setFocusPolicy(QtCore.Qt.NoFocus) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/zoom_in_01.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnZmOut.setIcon(icon3) + self.btnZmOut.setIconSize(QtCore.QSize(18, 18)) + self.btnZmOut.setObjectName(_fromUtf8("btnZmOut")) + self.btnZmIn = QtGui.QToolButton(self.frame) + self.btnZmIn.setGeometry(QtCore.QRect(110, 0, 28, 28)) + self.btnZmIn.setFocusPolicy(QtCore.Qt.NoFocus) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/zoom_out_01.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnZmIn.setIcon(icon4) + self.btnZmIn.setIconSize(QtCore.QSize(18, 18)) + self.btnZmIn.setObjectName(_fromUtf8("btnZmIn")) + self.btnSvgSave = QtGui.QToolButton(self.frame) + self.btnSvgSave.setGeometry(QtCore.QRect(200, 0, 28, 28)) + self.btnSvgSave.setFocusPolicy(QtCore.Qt.NoFocus) + icon5 = QtGui.QIcon() + icon5.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/save.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnSvgSave.setIcon(icon5) + self.btnSvgSave.setIconSize(QtCore.QSize(18, 18)) + self.btnSvgSave.setObjectName(_fromUtf8("btnSvgSave")) + self.btnTotatAcw = QtGui.QToolButton(self.frame) + self.btnTotatAcw.setGeometry(QtCore.QRect(140, 0, 28, 28)) + self.btnTotatAcw.setFocusPolicy(QtCore.Qt.NoFocus) + icon6 = QtGui.QIcon() + icon6.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/rotate-ccw.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnTotatAcw.setIcon(icon6) + self.btnTotatAcw.setIconSize(QtCore.QSize(22, 22)) + self.btnTotatAcw.setObjectName(_fromUtf8("btnTotatAcw")) + self.btnRotatCw = QtGui.QToolButton(self.frame) + self.btnRotatCw.setGeometry(QtCore.QRect(170, 0, 28, 28)) + self.btnRotatCw.setFocusPolicy(QtCore.Qt.NoFocus) + icon7 = QtGui.QIcon() + icon7.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/rotate-cw.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnRotatCw.setIcon(icon7) + self.btnRotatCw.setIconSize(QtCore.QSize(25, 25)) + self.btnRotatCw.setObjectName(_fromUtf8("btnRotatCw")) + self.btn3D = QtGui.QToolButton(self.frame) + self.btn3D.setGeometry(QtCore.QRect(390, 0, 28, 28)) + font = QtGui.QFont() + font.setFamily(_fromUtf8("Droid Serif")) + font.setPointSize(11) + font.setBold(True) + font.setItalic(True) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + self.btn3D.setFont(font) + self.btn3D.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn3D.setAutoRaise(False) + self.btn3D.setArrowType(QtCore.Qt.NoArrow) + self.btn3D.setObjectName(_fromUtf8("btn3D")) + self.chkBxBeam = QtGui.QCheckBox(self.frame) + self.chkBxBeam.setGeometry(QtCore.QRect(430, 0, 71, 29)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.chkBxBeam.setFont(font) + self.chkBxBeam.setFocusPolicy(QtCore.Qt.NoFocus) + self.chkBxBeam.setObjectName(_fromUtf8("chkBxBeam")) + self.chkBxCol = QtGui.QCheckBox(self.frame) + self.chkBxCol.setGeometry(QtCore.QRect(510, 0, 91, 29)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.chkBxCol.setFont(font) + self.chkBxCol.setFocusPolicy(QtCore.Qt.NoFocus) + self.chkBxCol.setObjectName(_fromUtf8("chkBxCol")) + self.chkBxFinplate = QtGui.QCheckBox(self.frame) + self.chkBxFinplate.setGeometry(QtCore.QRect(600, 0, 92, 29)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.chkBxFinplate.setFont(font) + self.chkBxFinplate.setFocusPolicy(QtCore.Qt.NoFocus) + self.chkBxFinplate.setObjectName(_fromUtf8("chkBxFinplate")) + self.btn_front = QtGui.QToolButton(self.frame) + self.btn_front.setGeometry(QtCore.QRect(270, 0, 28, 28)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.btn_front.setFont(font) + self.btn_front.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn_front.setAcceptDrops(True) + self.btn_front.setText(_fromUtf8("")) + icon8 = QtGui.QIcon() + icon8.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../../Downloads/ZY.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_front.setIcon(icon8) + self.btn_front.setIconSize(QtCore.QSize(22, 22)) + self.btn_front.setObjectName(_fromUtf8("btn_front")) + self.btn_top = QtGui.QToolButton(self.frame) + self.btn_top.setGeometry(QtCore.QRect(300, 0, 28, 28)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.btn_top.setFont(font) + self.btn_top.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn_top.setText(_fromUtf8("")) + icon9 = QtGui.QIcon() + icon9.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../../Downloads/Y-X.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_top.setIcon(icon9) + self.btn_top.setIconSize(QtCore.QSize(22, 23)) + self.btn_top.setObjectName(_fromUtf8("btn_top")) + self.btn_side = QtGui.QToolButton(self.frame) + self.btn_side.setGeometry(QtCore.QRect(330, 0, 28, 28)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.btn_side.setFont(font) + self.btn_side.setFocusPolicy(QtCore.Qt.NoFocus) + self.btn_side.setText(_fromUtf8("")) + icon10 = QtGui.QIcon() + icon10.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../../Downloads/Z-Y.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_side.setIcon(icon10) + self.btn_side.setIconSize(QtCore.QSize(22, 22)) + self.btn_side.setObjectName(_fromUtf8("btn_side")) + self.verticalLayout_2.addWidget(self.frame) + self.splitter = QtGui.QSplitter(self.centralwidget) + self.splitter.setOrientation(QtCore.Qt.Vertical) + self.splitter.setObjectName(_fromUtf8("splitter")) + self.frame_2 = QtGui.QFrame(self.splitter) + self.frame_2.setMinimumSize(QtCore.QSize(0, 100)) + self.frame_2.setFrameShape(QtGui.QFrame.Box) + self.frame_2.setFrameShadow(QtGui.QFrame.Raised) + self.frame_2.setLineWidth(1) + self.frame_2.setMidLineWidth(1) + self.frame_2.setObjectName(_fromUtf8("frame_2")) + self.verticalLayout = QtGui.QVBoxLayout(self.frame_2) + self.verticalLayout.setMargin(1) + self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) + self.mytabWidget = QtGui.QTabWidget(self.frame_2) + self.mytabWidget.setMinimumSize(QtCore.QSize(0, 450)) + font = QtGui.QFont() + font.setPointSize(8) + self.mytabWidget.setFont(font) + self.mytabWidget.setFocusPolicy(QtCore.Qt.NoFocus) + self.mytabWidget.setStyleSheet(_fromUtf8("QTabBar::tab { height: 75px; width: 18px; }")) + self.mytabWidget.setTabPosition(QtGui.QTabWidget.West) + self.mytabWidget.setObjectName(_fromUtf8("mytabWidget")) + self.verticalLayout.addWidget(self.mytabWidget) + self.textEdit = QtGui.QTextEdit(self.splitter) + self.textEdit.setMinimumSize(QtCore.QSize(0, 125)) + self.textEdit.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.textEdit.setObjectName(_fromUtf8("textEdit")) + self.verticalLayout_2.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtGui.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1335, 30)) + self.menubar.setObjectName(_fromUtf8("menubar")) + self.menuFile = QtGui.QMenu(self.menubar) + self.menuFile.setObjectName(_fromUtf8("menuFile")) + self.menuEdit = QtGui.QMenu(self.menubar) + self.menuEdit.setObjectName(_fromUtf8("menuEdit")) + self.menuView = QtGui.QMenu(self.menubar) + self.menuView.setObjectName(_fromUtf8("menuView")) + self.menuHelp = QtGui.QMenu(self.menubar) + self.menuHelp.setObjectName(_fromUtf8("menuHelp")) + self.menuGraphics = QtGui.QMenu(self.menubar) + self.menuGraphics.setObjectName(_fromUtf8("menuGraphics")) + MainWindow.setMenuBar(self.menubar) + self.inputDock = QtGui.QDockWidget(MainWindow) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.inputDock.sizePolicy().hasHeightForWidth()) + self.inputDock.setSizePolicy(sizePolicy) + self.inputDock.setMinimumSize(QtCore.QSize(125, 710)) + self.inputDock.setMaximumSize(QtCore.QSize(310, 710)) + self.inputDock.setBaseSize(QtCore.QSize(310, 710)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.inputDock.setFont(font) + self.inputDock.setFloating(False) + self.inputDock.setFeatures(QtGui.QDockWidget.AllDockWidgetFeatures) + self.inputDock.setObjectName(_fromUtf8("inputDock")) + self.dockWidgetContents = QtGui.QWidget() + self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) + self.txtFy = QtGui.QLineEdit(self.dockWidgetContents) + self.txtFy.setGeometry(QtCore.QRect(150, 140, 161, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtFy.setFont(font) + self.txtFy.setObjectName(_fromUtf8("txtFy")) + self.label_3 = QtGui.QLabel(self.dockWidgetContents) + self.label_3.setGeometry(QtCore.QRect(6, 75, 151, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_3.setFont(font) + self.label_3.setObjectName(_fromUtf8("label_3")) + self.comboConnLoc = QtGui.QComboBox(self.dockWidgetContents) + self.comboConnLoc.setGeometry(QtCore.QRect(150, 170, 161, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboConnLoc.setFont(font) + self.comboConnLoc.setObjectName(_fromUtf8("comboConnLoc")) + self.comboConnLoc.addItem(_fromUtf8("")) + self.comboConnLoc.addItem(_fromUtf8("")) + self.comboConnLoc.addItem(_fromUtf8("")) + self.txtFu = QtGui.QLineEdit(self.dockWidgetContents) + self.txtFu.setGeometry(QtCore.QRect(150, 110, 161, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtFu.setFont(font) + self.txtFu.setObjectName(_fromUtf8("txtFu")) + self.label = QtGui.QLabel(self.dockWidgetContents) + self.label.setGeometry(QtCore.QRect(1, 15, 221, 21)) + palette = QtGui.QPalette() + brush = QtGui.QBrush(QtGui.QColor(0, 0, 127)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Link, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Link, brush) + brush = QtGui.QBrush(QtGui.QColor(0, 0, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Link, brush) + self.label.setPalette(palette) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setObjectName(_fromUtf8("label")) + self.label_4 = QtGui.QLabel(self.dockWidgetContents) + self.label_4.setGeometry(QtCore.QRect(6, 170, 120, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_4.setFont(font) + self.label_4.setObjectName(_fromUtf8("label_4")) + self.lbl_fu = QtGui.QLabel(self.dockWidgetContents) + self.lbl_fu.setGeometry(QtCore.QRect(6, 110, 120, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_fu.setFont(font) + self.lbl_fu.setObjectName(_fromUtf8("lbl_fu")) + self.comboColSec = QtGui.QComboBox(self.dockWidgetContents) + self.comboColSec.setGeometry(QtCore.QRect(150, 75, 161, 25)) + self.comboColSec.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboColSec.setMaxVisibleItems(5) + self.comboColSec.setObjectName(_fromUtf8("comboColSec")) + self.lbl_fy = QtGui.QLabel(self.dockWidgetContents) + self.lbl_fy.setGeometry(QtCore.QRect(6, 135, 120, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_fy.setFont(font) + self.lbl_fy.setObjectName(_fromUtf8("lbl_fy")) + self.label_18 = QtGui.QLabel(self.dockWidgetContents) + self.label_18.setGeometry(QtCore.QRect(1, 240, 170, 25)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_18.setFont(font) + self.label_18.setObjectName(_fromUtf8("label_18")) + self.lbl_shear = QtGui.QLabel(self.dockWidgetContents) + self.lbl_shear.setGeometry(QtCore.QRect(6, 270, 151, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_shear.setFont(font) + self.lbl_shear.setObjectName(_fromUtf8("lbl_shear")) + self.txtShear = QtGui.QLineEdit(self.dockWidgetContents) + self.txtShear.setGeometry(QtCore.QRect(150, 270, 161, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtShear.setFont(font) + self.txtShear.setObjectName(_fromUtf8("txtShear")) + self.label_5 = QtGui.QLabel(self.dockWidgetContents) + self.label_5.setGeometry(QtCore.QRect(1, 300, 150, 25)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_5.setFont(font) + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName(_fromUtf8("label_5")) + self.comboType = QtGui.QComboBox(self.dockWidgetContents) + self.comboType.setGeometry(QtCore.QRect(150, 360, 160, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.comboType.setFont(font) + self.comboType.setMaxVisibleItems(10) + self.comboType.setObjectName(_fromUtf8("comboType")) + self.label_6 = QtGui.QLabel(self.dockWidgetContents) + self.label_6.setGeometry(QtCore.QRect(6, 390, 100, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_6.setFont(font) + self.label_6.setObjectName(_fromUtf8("label_6")) + self.comboGrade = QtGui.QComboBox(self.dockWidgetContents) + self.comboGrade.setGeometry(QtCore.QRect(150, 390, 160, 25)) + self.comboGrade.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboGrade.setMaxVisibleItems(6) + self.comboGrade.setObjectName(_fromUtf8("comboGrade")) + self.label_7 = QtGui.QLabel(self.dockWidgetContents) + self.label_7.setGeometry(QtCore.QRect(6, 330, 131, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_7.setFont(font) + self.label_7.setObjectName(_fromUtf8("label_7")) + self.label_8 = QtGui.QLabel(self.dockWidgetContents) + self.label_8.setGeometry(QtCore.QRect(6, 360, 100, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_8.setFont(font) + self.label_8.setObjectName(_fromUtf8("label_8")) + self.comboDaimeter = QtGui.QComboBox(self.dockWidgetContents) + self.comboDaimeter.setGeometry(QtCore.QRect(150, 330, 160, 27)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboDaimeter.setFont(font) + self.comboDaimeter.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboDaimeter.setMaxVisibleItems(5) + self.comboDaimeter.setObjectName(_fromUtf8("comboDaimeter")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.comboDaimeter.addItem(_fromUtf8("")) + self.lbl_width_2 = QtGui.QLabel(self.dockWidgetContents) + self.lbl_width_2.setGeometry(QtCore.QRect(6, 510, 111, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_width_2.setFont(font) + self.lbl_width_2.setObjectName(_fromUtf8("lbl_width_2")) + self.label_40 = QtGui.QLabel(self.dockWidgetContents) + self.label_40.setGeometry(QtCore.QRect(1, 420, 100, 25)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_40.setFont(font) + self.label_40.setObjectName(_fromUtf8("label_40")) + self.label_41 = QtGui.QLabel(self.dockWidgetContents) + self.label_41.setGeometry(QtCore.QRect(6, 450, 131, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_41.setFont(font) + self.label_41.setObjectName(_fromUtf8("label_41")) + self.txtPlateLen = QtGui.QLineEdit(self.dockWidgetContents) + self.txtPlateLen.setGeometry(QtCore.QRect(150, 480, 160, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtPlateLen.setFont(font) + self.txtPlateLen.setObjectName(_fromUtf8("txtPlateLen")) + self.lbl_len_2 = QtGui.QLabel(self.dockWidgetContents) + self.lbl_len_2.setGeometry(QtCore.QRect(6, 480, 111, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_len_2.setFont(font) + self.lbl_len_2.setObjectName(_fromUtf8("lbl_len_2")) + self.comboPlateThick_2 = QtGui.QComboBox(self.dockWidgetContents) + self.comboPlateThick_2.setGeometry(QtCore.QRect(150, 450, 160, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboPlateThick_2.setFont(font) + self.comboPlateThick_2.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboPlateThick_2.setMaxVisibleItems(5) + self.comboPlateThick_2.setObjectName(_fromUtf8("comboPlateThick_2")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.label_42 = QtGui.QLabel(self.dockWidgetContents) + self.label_42.setGeometry(QtCore.QRect(1, 540, 66, 25)) + font = QtGui.QFont() + font.setPointSize(11) + self.label_42.setFont(font) + self.label_42.setObjectName(_fromUtf8("label_42")) + self.label_43 = QtGui.QLabel(self.dockWidgetContents) + self.label_43.setGeometry(QtCore.QRect(6, 570, 131, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_43.setFont(font) + self.label_43.setObjectName(_fromUtf8("label_43")) + self.outputFrame_2 = QtGui.QFrame(self.dockWidgetContents) + self.outputFrame_2.setGeometry(QtCore.QRect(988, 620, 320, 690)) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputFrame_2.sizePolicy().hasHeightForWidth()) + self.outputFrame_2.setSizePolicy(sizePolicy) + self.outputFrame_2.setMinimumSize(QtCore.QSize(320, 690)) + self.outputFrame_2.setFrameShape(QtGui.QFrame.StyledPanel) + self.outputFrame_2.setFrameShadow(QtGui.QFrame.Raised) + self.outputFrame_2.setObjectName(_fromUtf8("outputFrame_2")) + self.txtShrCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtShrCapacity_2.setGeometry(QtCore.QRect(181, 50, 130, 25)) + self.txtShrCapacity_2.setText(_fromUtf8("")) + self.txtShrCapacity_2.setReadOnly(True) + self.txtShrCapacity_2.setObjectName(_fromUtf8("txtShrCapacity_2")) + self.txtbearCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtbearCapacity_2.setGeometry(QtCore.QRect(181, 80, 130, 25)) + self.txtbearCapacity_2.setReadOnly(True) + self.txtbearCapacity_2.setObjectName(_fromUtf8("txtbearCapacity_2")) + self.txtBoltCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtBoltCapacity_2.setGeometry(QtCore.QRect(181, 110, 130, 25)) + self.txtBoltCapacity_2.setReadOnly(True) + self.txtBoltCapacity_2.setObjectName(_fromUtf8("txtBoltCapacity_2")) + self.txtNoBolts_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtNoBolts_2.setGeometry(QtCore.QRect(181, 140, 130, 25)) + self.txtNoBolts_2.setReadOnly(True) + self.txtNoBolts_2.setObjectName(_fromUtf8("txtNoBolts_2")) + self.txtPitch_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtPitch_2.setGeometry(QtCore.QRect(181, 230, 130, 25)) + self.txtPitch_2.setReadOnly(True) + self.txtPitch_2.setObjectName(_fromUtf8("txtPitch_2")) + self.txtGuage_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtGuage_2.setGeometry(QtCore.QRect(181, 260, 130, 25)) + self.txtGuage_2.setReadOnly(True) + self.txtGuage_2.setObjectName(_fromUtf8("txtGuage_2")) + self.txtEndDist_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtEndDist_2.setGeometry(QtCore.QRect(181, 290, 130, 25)) + self.txtEndDist_2.setReadOnly(True) + self.txtEndDist_2.setObjectName(_fromUtf8("txtEndDist_2")) + self.txtEdgeDist_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtEdgeDist_2.setGeometry(QtCore.QRect(181, 320, 130, 25)) + self.txtEdgeDist_2.setReadOnly(True) + self.txtEdgeDist_2.setObjectName(_fromUtf8("txtEdgeDist_2")) + self.txtWeldThick_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtWeldThick_2.setGeometry(QtCore.QRect(181, 380, 130, 25)) + self.txtWeldThick_2.setReadOnly(True) + self.txtWeldThick_2.setObjectName(_fromUtf8("txtWeldThick_2")) + self.txtResltShr_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtResltShr_2.setGeometry(QtCore.QRect(181, 410, 130, 25)) + self.txtResltShr_2.setReadOnly(True) + self.txtResltShr_2.setObjectName(_fromUtf8("txtResltShr_2")) + self.txtWeldStrng_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtWeldStrng_2.setGeometry(QtCore.QRect(181, 440, 130, 25)) + self.txtWeldStrng_2.setReadOnly(True) + self.txtWeldStrng_2.setObjectName(_fromUtf8("txtWeldStrng_2")) + self.txtPlateThick_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtPlateThick_2.setGeometry(QtCore.QRect(181, 510, 130, 25)) + self.txtPlateThick_2.setReadOnly(True) + self.txtPlateThick_2.setObjectName(_fromUtf8("txtPlateThick_2")) + self.label_44 = QtGui.QLabel(self.outputFrame_2) + self.label_44.setGeometry(QtCore.QRect(4, 30, 66, 17)) + self.label_44.setObjectName(_fromUtf8("label_44")) + self.label_45 = QtGui.QLabel(self.outputFrame_2) + self.label_45.setGeometry(QtCore.QRect(10, 50, 170, 25)) + self.label_45.setObjectName(_fromUtf8("label_45")) + self.label_46 = QtGui.QLabel(self.outputFrame_2) + self.label_46.setGeometry(QtCore.QRect(10, 80, 150, 25)) + self.label_46.setObjectName(_fromUtf8("label_46")) + self.labl123_2 = QtGui.QLabel(self.outputFrame_2) + self.labl123_2.setGeometry(QtCore.QRect(10, 110, 150, 25)) + self.labl123_2.setObjectName(_fromUtf8("labl123_2")) + self.t_2 = QtGui.QLabel(self.outputFrame_2) + self.t_2.setGeometry(QtCore.QRect(10, 140, 130, 25)) + self.t_2.setObjectName(_fromUtf8("t_2")) + self.label_47 = QtGui.QLabel(self.outputFrame_2) + self.label_47.setGeometry(QtCore.QRect(10, 230, 130, 25)) + self.label_47.setObjectName(_fromUtf8("label_47")) + self.label_48 = QtGui.QLabel(self.outputFrame_2) + self.label_48.setGeometry(QtCore.QRect(10, 290, 130, 25)) + self.label_48.setObjectName(_fromUtf8("label_48")) + self.label_49 = QtGui.QLabel(self.outputFrame_2) + self.label_49.setGeometry(QtCore.QRect(10, 380, 130, 25)) + self.label_49.setObjectName(_fromUtf8("label_49")) + self.label_50 = QtGui.QLabel(self.outputFrame_2) + self.label_50.setGeometry(QtCore.QRect(10, 440, 160, 25)) + self.label_50.setObjectName(_fromUtf8("label_50")) + self.label_51 = QtGui.QLabel(self.outputFrame_2) + self.label_51.setGeometry(QtCore.QRect(10, 260, 130, 25)) + self.label_51.setObjectName(_fromUtf8("label_51")) + self.label_52 = QtGui.QLabel(self.outputFrame_2) + self.label_52.setGeometry(QtCore.QRect(4, 350, 130, 25)) + self.label_52.setObjectName(_fromUtf8("label_52")) + self.label_53 = QtGui.QLabel(self.outputFrame_2) + self.label_53.setGeometry(QtCore.QRect(10, 320, 140, 25)) + self.label_53.setObjectName(_fromUtf8("label_53")) + self.label_54 = QtGui.QLabel(self.outputFrame_2) + self.label_54.setGeometry(QtCore.QRect(10, 510, 130, 25)) + self.label_54.setObjectName(_fromUtf8("label_54")) + self.label_55 = QtGui.QLabel(self.outputFrame_2) + self.label_55.setGeometry(QtCore.QRect(10, 410, 170, 25)) + self.label_55.setObjectName(_fromUtf8("label_55")) + self.label_56 = QtGui.QLabel(self.outputFrame_2) + self.label_56.setGeometry(QtCore.QRect(10, 540, 160, 25)) + self.label_56.setObjectName(_fromUtf8("label_56")) + self.label_57 = QtGui.QLabel(self.outputFrame_2) + self.label_57.setGeometry(QtCore.QRect(4, 480, 130, 25)) + self.label_57.setObjectName(_fromUtf8("label_57")) + self.txtExtMomnt_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtExtMomnt_2.setGeometry(QtCore.QRect(180, 540, 130, 25)) + self.txtExtMomnt_2.setReadOnly(True) + self.txtExtMomnt_2.setObjectName(_fromUtf8("txtExtMomnt_2")) + self.txtMomntCapacity_2 = QtGui.QLineEdit(self.outputFrame_2) + self.txtMomntCapacity_2.setGeometry(QtCore.QRect(180, 570, 130, 25)) + self.txtMomntCapacity_2.setReadOnly(True) + self.txtMomntCapacity_2.setObjectName(_fromUtf8("txtMomntCapacity_2")) + self.label_58 = QtGui.QLabel(self.outputFrame_2) + self.label_58.setGeometry(QtCore.QRect(10, 570, 170, 25)) + self.label_58.setObjectName(_fromUtf8("label_58")) + self.lbl_col_2 = QtGui.QLabel(self.outputFrame_2) + self.lbl_col_2.setGeometry(QtCore.QRect(10, 200, 130, 25)) + self.lbl_col_2.setObjectName(_fromUtf8("lbl_col_2")) + self.lbl_row_2 = QtGui.QLabel(self.outputFrame_2) + self.lbl_row_2.setGeometry(QtCore.QRect(10, 170, 130, 25)) + self.lbl_row_2.setObjectName(_fromUtf8("lbl_row_2")) + self.lineEdit_3 = QtGui.QLineEdit(self.outputFrame_2) + self.lineEdit_3.setGeometry(QtCore.QRect(180, 170, 130, 25)) + self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) + self.lineEdit_4 = QtGui.QLineEdit(self.outputFrame_2) + self.lineEdit_4.setGeometry(QtCore.QRect(180, 200, 130, 25)) + self.lineEdit_4.setObjectName(_fromUtf8("lineEdit_4")) + self.label_59 = QtGui.QLabel(self.outputFrame_2) + self.label_59.setGeometry(QtCore.QRect(120, 0, 60, 31)) + self.label_59.setObjectName(_fromUtf8("label_59")) + self.pushButton_2 = QtGui.QPushButton(self.outputFrame_2) + self.pushButton_2.setGeometry(QtCore.QRect(20, 620, 40, 50)) + self.pushButton_2.setText(_fromUtf8("")) + icon11 = QtGui.QIcon() + icon11.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/logo.jpg")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.pushButton_2.setIcon(icon11) + self.pushButton_2.setIconSize(QtCore.QSize(40, 50)) + self.pushButton_2.setCheckable(False) + self.pushButton_2.setAutoDefault(False) + self.pushButton_2.setDefault(False) + self.pushButton_2.setFlat(False) + self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) + self.btnReset_2 = QtGui.QPushButton(self.dockWidgetContents) + self.btnReset_2.setGeometry(QtCore.QRect(30, 1249, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnReset_2.setFont(font) + self.btnReset_2.setObjectName(_fromUtf8("btnReset_2")) + self.btnDesign_2 = QtGui.QPushButton(self.dockWidgetContents) + self.btnDesign_2.setGeometry(QtCore.QRect(150, 1249, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnDesign_2.setFont(font) + self.btnDesign_2.setAutoDefault(False) + self.btnDesign_2.setDefault(False) + self.btnDesign_2.setFlat(False) + self.btnDesign_2.setObjectName(_fromUtf8("btnDesign_2")) + self.outputFrame_3 = QtGui.QFrame(self.dockWidgetContents) + self.outputFrame_3.setGeometry(QtCore.QRect(1088, 610, 320, 690)) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputFrame_3.sizePolicy().hasHeightForWidth()) + self.outputFrame_3.setSizePolicy(sizePolicy) + self.outputFrame_3.setMinimumSize(QtCore.QSize(320, 690)) + self.outputFrame_3.setFrameShape(QtGui.QFrame.StyledPanel) + self.outputFrame_3.setFrameShadow(QtGui.QFrame.Raised) + self.outputFrame_3.setObjectName(_fromUtf8("outputFrame_3")) + self.txtShrCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtShrCapacity_3.setGeometry(QtCore.QRect(181, 50, 130, 25)) + self.txtShrCapacity_3.setText(_fromUtf8("")) + self.txtShrCapacity_3.setReadOnly(True) + self.txtShrCapacity_3.setObjectName(_fromUtf8("txtShrCapacity_3")) + self.txtbearCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtbearCapacity_3.setGeometry(QtCore.QRect(181, 80, 130, 25)) + self.txtbearCapacity_3.setReadOnly(True) + self.txtbearCapacity_3.setObjectName(_fromUtf8("txtbearCapacity_3")) + self.txtBoltCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtBoltCapacity_3.setGeometry(QtCore.QRect(181, 110, 130, 25)) + self.txtBoltCapacity_3.setReadOnly(True) + self.txtBoltCapacity_3.setObjectName(_fromUtf8("txtBoltCapacity_3")) + self.txtNoBolts_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtNoBolts_3.setGeometry(QtCore.QRect(181, 140, 130, 25)) + self.txtNoBolts_3.setReadOnly(True) + self.txtNoBolts_3.setObjectName(_fromUtf8("txtNoBolts_3")) + self.txtPitch_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtPitch_3.setGeometry(QtCore.QRect(181, 230, 130, 25)) + self.txtPitch_3.setReadOnly(True) + self.txtPitch_3.setObjectName(_fromUtf8("txtPitch_3")) + self.txtGuage_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtGuage_3.setGeometry(QtCore.QRect(181, 260, 130, 25)) + self.txtGuage_3.setReadOnly(True) + self.txtGuage_3.setObjectName(_fromUtf8("txtGuage_3")) + self.txtEndDist_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtEndDist_3.setGeometry(QtCore.QRect(181, 290, 130, 25)) + self.txtEndDist_3.setReadOnly(True) + self.txtEndDist_3.setObjectName(_fromUtf8("txtEndDist_3")) + self.txtEdgeDist_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtEdgeDist_3.setGeometry(QtCore.QRect(181, 320, 130, 25)) + self.txtEdgeDist_3.setReadOnly(True) + self.txtEdgeDist_3.setObjectName(_fromUtf8("txtEdgeDist_3")) + self.txtWeldThick_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtWeldThick_3.setGeometry(QtCore.QRect(181, 380, 130, 25)) + self.txtWeldThick_3.setReadOnly(True) + self.txtWeldThick_3.setObjectName(_fromUtf8("txtWeldThick_3")) + self.txtResltShr_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtResltShr_3.setGeometry(QtCore.QRect(181, 410, 130, 25)) + self.txtResltShr_3.setReadOnly(True) + self.txtResltShr_3.setObjectName(_fromUtf8("txtResltShr_3")) + self.txtWeldStrng_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtWeldStrng_3.setGeometry(QtCore.QRect(181, 440, 130, 25)) + self.txtWeldStrng_3.setReadOnly(True) + self.txtWeldStrng_3.setObjectName(_fromUtf8("txtWeldStrng_3")) + self.txtPlateThick_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtPlateThick_3.setGeometry(QtCore.QRect(181, 510, 130, 25)) + self.txtPlateThick_3.setReadOnly(True) + self.txtPlateThick_3.setObjectName(_fromUtf8("txtPlateThick_3")) + self.label_60 = QtGui.QLabel(self.outputFrame_3) + self.label_60.setGeometry(QtCore.QRect(4, 30, 66, 17)) + self.label_60.setObjectName(_fromUtf8("label_60")) + self.label_61 = QtGui.QLabel(self.outputFrame_3) + self.label_61.setGeometry(QtCore.QRect(10, 50, 170, 25)) + self.label_61.setObjectName(_fromUtf8("label_61")) + self.label_62 = QtGui.QLabel(self.outputFrame_3) + self.label_62.setGeometry(QtCore.QRect(10, 80, 150, 25)) + self.label_62.setObjectName(_fromUtf8("label_62")) + self.labl123_3 = QtGui.QLabel(self.outputFrame_3) + self.labl123_3.setGeometry(QtCore.QRect(10, 110, 150, 25)) + self.labl123_3.setObjectName(_fromUtf8("labl123_3")) + self.t_3 = QtGui.QLabel(self.outputFrame_3) + self.t_3.setGeometry(QtCore.QRect(10, 140, 130, 25)) + self.t_3.setObjectName(_fromUtf8("t_3")) + self.label_63 = QtGui.QLabel(self.outputFrame_3) + self.label_63.setGeometry(QtCore.QRect(10, 230, 130, 25)) + self.label_63.setObjectName(_fromUtf8("label_63")) + self.label_64 = QtGui.QLabel(self.outputFrame_3) + self.label_64.setGeometry(QtCore.QRect(10, 290, 130, 25)) + self.label_64.setObjectName(_fromUtf8("label_64")) + self.label_65 = QtGui.QLabel(self.outputFrame_3) + self.label_65.setGeometry(QtCore.QRect(10, 380, 130, 25)) + self.label_65.setObjectName(_fromUtf8("label_65")) + self.label_66 = QtGui.QLabel(self.outputFrame_3) + self.label_66.setGeometry(QtCore.QRect(10, 440, 160, 25)) + self.label_66.setObjectName(_fromUtf8("label_66")) + self.label_67 = QtGui.QLabel(self.outputFrame_3) + self.label_67.setGeometry(QtCore.QRect(10, 260, 130, 25)) + self.label_67.setObjectName(_fromUtf8("label_67")) + self.label_68 = QtGui.QLabel(self.outputFrame_3) + self.label_68.setGeometry(QtCore.QRect(4, 350, 130, 25)) + self.label_68.setObjectName(_fromUtf8("label_68")) + self.label_69 = QtGui.QLabel(self.outputFrame_3) + self.label_69.setGeometry(QtCore.QRect(10, 320, 140, 25)) + self.label_69.setObjectName(_fromUtf8("label_69")) + self.label_70 = QtGui.QLabel(self.outputFrame_3) + self.label_70.setGeometry(QtCore.QRect(10, 510, 130, 25)) + self.label_70.setObjectName(_fromUtf8("label_70")) + self.label_71 = QtGui.QLabel(self.outputFrame_3) + self.label_71.setGeometry(QtCore.QRect(10, 410, 170, 25)) + self.label_71.setObjectName(_fromUtf8("label_71")) + self.label_72 = QtGui.QLabel(self.outputFrame_3) + self.label_72.setGeometry(QtCore.QRect(10, 540, 160, 25)) + self.label_72.setObjectName(_fromUtf8("label_72")) + self.label_73 = QtGui.QLabel(self.outputFrame_3) + self.label_73.setGeometry(QtCore.QRect(4, 480, 130, 25)) + self.label_73.setObjectName(_fromUtf8("label_73")) + self.txtExtMomnt_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtExtMomnt_3.setGeometry(QtCore.QRect(180, 540, 130, 25)) + self.txtExtMomnt_3.setReadOnly(True) + self.txtExtMomnt_3.setObjectName(_fromUtf8("txtExtMomnt_3")) + self.txtMomntCapacity_3 = QtGui.QLineEdit(self.outputFrame_3) + self.txtMomntCapacity_3.setGeometry(QtCore.QRect(180, 570, 130, 25)) + self.txtMomntCapacity_3.setReadOnly(True) + self.txtMomntCapacity_3.setObjectName(_fromUtf8("txtMomntCapacity_3")) + self.label_74 = QtGui.QLabel(self.outputFrame_3) + self.label_74.setGeometry(QtCore.QRect(10, 570, 170, 25)) + self.label_74.setObjectName(_fromUtf8("label_74")) + self.lbl_col_3 = QtGui.QLabel(self.outputFrame_3) + self.lbl_col_3.setGeometry(QtCore.QRect(10, 200, 130, 25)) + self.lbl_col_3.setObjectName(_fromUtf8("lbl_col_3")) + self.lbl_row_3 = QtGui.QLabel(self.outputFrame_3) + self.lbl_row_3.setGeometry(QtCore.QRect(10, 170, 130, 25)) + self.lbl_row_3.setObjectName(_fromUtf8("lbl_row_3")) + self.lineEdit_5 = QtGui.QLineEdit(self.outputFrame_3) + self.lineEdit_5.setGeometry(QtCore.QRect(180, 170, 130, 25)) + self.lineEdit_5.setObjectName(_fromUtf8("lineEdit_5")) + self.lineEdit_6 = QtGui.QLineEdit(self.outputFrame_3) + self.lineEdit_6.setGeometry(QtCore.QRect(180, 200, 130, 25)) + self.lineEdit_6.setObjectName(_fromUtf8("lineEdit_6")) + self.label_75 = QtGui.QLabel(self.outputFrame_3) + self.label_75.setGeometry(QtCore.QRect(120, 0, 60, 31)) + self.label_75.setObjectName(_fromUtf8("label_75")) + self.pushButton_3 = QtGui.QPushButton(self.outputFrame_3) + self.pushButton_3.setGeometry(QtCore.QRect(20, 620, 40, 50)) + self.pushButton_3.setText(_fromUtf8("")) + self.pushButton_3.setIcon(icon11) + self.pushButton_3.setIconSize(QtCore.QSize(40, 50)) + self.pushButton_3.setCheckable(False) + self.pushButton_3.setAutoDefault(False) + self.pushButton_3.setDefault(False) + self.pushButton_3.setFlat(False) + self.pushButton_3.setObjectName(_fromUtf8("pushButton_3")) + self.btnReset_3 = QtGui.QPushButton(self.dockWidgetContents) + self.btnReset_3.setGeometry(QtCore.QRect(130, 1239, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnReset_3.setFont(font) + self.btnReset_3.setObjectName(_fromUtf8("btnReset_3")) + self.btnDesign_3 = QtGui.QPushButton(self.dockWidgetContents) + self.btnDesign_3.setGeometry(QtCore.QRect(250, 1239, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnDesign_3.setFont(font) + self.btnDesign_3.setAutoDefault(False) + self.btnDesign_3.setDefault(False) + self.btnDesign_3.setFlat(False) + self.btnDesign_3.setObjectName(_fromUtf8("btnDesign_3")) + self.outputFrame_4 = QtGui.QFrame(self.dockWidgetContents) + self.outputFrame_4.setGeometry(QtCore.QRect(1048, 580, 320, 690)) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputFrame_4.sizePolicy().hasHeightForWidth()) + self.outputFrame_4.setSizePolicy(sizePolicy) + self.outputFrame_4.setMinimumSize(QtCore.QSize(320, 690)) + self.outputFrame_4.setFrameShape(QtGui.QFrame.StyledPanel) + self.outputFrame_4.setFrameShadow(QtGui.QFrame.Raised) + self.outputFrame_4.setObjectName(_fromUtf8("outputFrame_4")) + self.txtShrCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtShrCapacity_4.setGeometry(QtCore.QRect(181, 50, 130, 25)) + self.txtShrCapacity_4.setText(_fromUtf8("")) + self.txtShrCapacity_4.setReadOnly(True) + self.txtShrCapacity_4.setObjectName(_fromUtf8("txtShrCapacity_4")) + self.txtbearCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtbearCapacity_4.setGeometry(QtCore.QRect(181, 80, 130, 25)) + self.txtbearCapacity_4.setReadOnly(True) + self.txtbearCapacity_4.setObjectName(_fromUtf8("txtbearCapacity_4")) + self.txtBoltCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtBoltCapacity_4.setGeometry(QtCore.QRect(181, 110, 130, 25)) + self.txtBoltCapacity_4.setReadOnly(True) + self.txtBoltCapacity_4.setObjectName(_fromUtf8("txtBoltCapacity_4")) + self.txtNoBolts_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtNoBolts_4.setGeometry(QtCore.QRect(181, 140, 130, 25)) + self.txtNoBolts_4.setReadOnly(True) + self.txtNoBolts_4.setObjectName(_fromUtf8("txtNoBolts_4")) + self.txtPitch_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtPitch_4.setGeometry(QtCore.QRect(181, 230, 130, 25)) + self.txtPitch_4.setReadOnly(True) + self.txtPitch_4.setObjectName(_fromUtf8("txtPitch_4")) + self.txtGuage_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtGuage_4.setGeometry(QtCore.QRect(181, 260, 130, 25)) + self.txtGuage_4.setReadOnly(True) + self.txtGuage_4.setObjectName(_fromUtf8("txtGuage_4")) + self.txtEndDist_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtEndDist_4.setGeometry(QtCore.QRect(181, 290, 130, 25)) + self.txtEndDist_4.setReadOnly(True) + self.txtEndDist_4.setObjectName(_fromUtf8("txtEndDist_4")) + self.txtEdgeDist_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtEdgeDist_4.setGeometry(QtCore.QRect(181, 320, 130, 25)) + self.txtEdgeDist_4.setReadOnly(True) + self.txtEdgeDist_4.setObjectName(_fromUtf8("txtEdgeDist_4")) + self.txtWeldThick_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtWeldThick_4.setGeometry(QtCore.QRect(181, 380, 130, 25)) + self.txtWeldThick_4.setReadOnly(True) + self.txtWeldThick_4.setObjectName(_fromUtf8("txtWeldThick_4")) + self.txtResltShr_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtResltShr_4.setGeometry(QtCore.QRect(181, 410, 130, 25)) + self.txtResltShr_4.setReadOnly(True) + self.txtResltShr_4.setObjectName(_fromUtf8("txtResltShr_4")) + self.txtWeldStrng_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtWeldStrng_4.setGeometry(QtCore.QRect(181, 440, 130, 25)) + self.txtWeldStrng_4.setReadOnly(True) + self.txtWeldStrng_4.setObjectName(_fromUtf8("txtWeldStrng_4")) + self.txtPlateThick_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtPlateThick_4.setGeometry(QtCore.QRect(181, 510, 130, 25)) + self.txtPlateThick_4.setReadOnly(True) + self.txtPlateThick_4.setObjectName(_fromUtf8("txtPlateThick_4")) + self.label_76 = QtGui.QLabel(self.outputFrame_4) + self.label_76.setGeometry(QtCore.QRect(4, 30, 66, 17)) + self.label_76.setObjectName(_fromUtf8("label_76")) + self.label_77 = QtGui.QLabel(self.outputFrame_4) + self.label_77.setGeometry(QtCore.QRect(10, 50, 170, 25)) + self.label_77.setObjectName(_fromUtf8("label_77")) + self.label_78 = QtGui.QLabel(self.outputFrame_4) + self.label_78.setGeometry(QtCore.QRect(10, 80, 150, 25)) + self.label_78.setObjectName(_fromUtf8("label_78")) + self.labl123_4 = QtGui.QLabel(self.outputFrame_4) + self.labl123_4.setGeometry(QtCore.QRect(10, 110, 150, 25)) + self.labl123_4.setObjectName(_fromUtf8("labl123_4")) + self.t_4 = QtGui.QLabel(self.outputFrame_4) + self.t_4.setGeometry(QtCore.QRect(10, 140, 130, 25)) + self.t_4.setObjectName(_fromUtf8("t_4")) + self.label_79 = QtGui.QLabel(self.outputFrame_4) + self.label_79.setGeometry(QtCore.QRect(10, 230, 130, 25)) + self.label_79.setObjectName(_fromUtf8("label_79")) + self.label_80 = QtGui.QLabel(self.outputFrame_4) + self.label_80.setGeometry(QtCore.QRect(10, 290, 130, 25)) + self.label_80.setObjectName(_fromUtf8("label_80")) + self.label_81 = QtGui.QLabel(self.outputFrame_4) + self.label_81.setGeometry(QtCore.QRect(10, 380, 130, 25)) + self.label_81.setObjectName(_fromUtf8("label_81")) + self.label_82 = QtGui.QLabel(self.outputFrame_4) + self.label_82.setGeometry(QtCore.QRect(10, 440, 160, 25)) + self.label_82.setObjectName(_fromUtf8("label_82")) + self.label_83 = QtGui.QLabel(self.outputFrame_4) + self.label_83.setGeometry(QtCore.QRect(10, 260, 130, 25)) + self.label_83.setObjectName(_fromUtf8("label_83")) + self.label_84 = QtGui.QLabel(self.outputFrame_4) + self.label_84.setGeometry(QtCore.QRect(4, 350, 130, 25)) + self.label_84.setObjectName(_fromUtf8("label_84")) + self.label_85 = QtGui.QLabel(self.outputFrame_4) + self.label_85.setGeometry(QtCore.QRect(10, 320, 140, 25)) + self.label_85.setObjectName(_fromUtf8("label_85")) + self.label_86 = QtGui.QLabel(self.outputFrame_4) + self.label_86.setGeometry(QtCore.QRect(10, 510, 130, 25)) + self.label_86.setObjectName(_fromUtf8("label_86")) + self.label_87 = QtGui.QLabel(self.outputFrame_4) + self.label_87.setGeometry(QtCore.QRect(10, 410, 170, 25)) + self.label_87.setObjectName(_fromUtf8("label_87")) + self.label_88 = QtGui.QLabel(self.outputFrame_4) + self.label_88.setGeometry(QtCore.QRect(10, 540, 160, 25)) + self.label_88.setObjectName(_fromUtf8("label_88")) + self.label_89 = QtGui.QLabel(self.outputFrame_4) + self.label_89.setGeometry(QtCore.QRect(4, 480, 130, 25)) + self.label_89.setObjectName(_fromUtf8("label_89")) + self.txtExtMomnt_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtExtMomnt_4.setGeometry(QtCore.QRect(180, 540, 130, 25)) + self.txtExtMomnt_4.setReadOnly(True) + self.txtExtMomnt_4.setObjectName(_fromUtf8("txtExtMomnt_4")) + self.txtMomntCapacity_4 = QtGui.QLineEdit(self.outputFrame_4) + self.txtMomntCapacity_4.setGeometry(QtCore.QRect(180, 570, 130, 25)) + self.txtMomntCapacity_4.setReadOnly(True) + self.txtMomntCapacity_4.setObjectName(_fromUtf8("txtMomntCapacity_4")) + self.label_90 = QtGui.QLabel(self.outputFrame_4) + self.label_90.setGeometry(QtCore.QRect(10, 570, 170, 25)) + self.label_90.setObjectName(_fromUtf8("label_90")) + self.lbl_col_4 = QtGui.QLabel(self.outputFrame_4) + self.lbl_col_4.setGeometry(QtCore.QRect(10, 200, 130, 25)) + self.lbl_col_4.setObjectName(_fromUtf8("lbl_col_4")) + self.lbl_row_4 = QtGui.QLabel(self.outputFrame_4) + self.lbl_row_4.setGeometry(QtCore.QRect(10, 170, 130, 25)) + self.lbl_row_4.setObjectName(_fromUtf8("lbl_row_4")) + self.lineEdit_7 = QtGui.QLineEdit(self.outputFrame_4) + self.lineEdit_7.setGeometry(QtCore.QRect(180, 170, 130, 25)) + self.lineEdit_7.setObjectName(_fromUtf8("lineEdit_7")) + self.lineEdit_8 = QtGui.QLineEdit(self.outputFrame_4) + self.lineEdit_8.setGeometry(QtCore.QRect(180, 200, 130, 25)) + self.lineEdit_8.setObjectName(_fromUtf8("lineEdit_8")) + self.label_91 = QtGui.QLabel(self.outputFrame_4) + self.label_91.setGeometry(QtCore.QRect(120, 0, 60, 31)) + self.label_91.setObjectName(_fromUtf8("label_91")) + self.pushButton_4 = QtGui.QPushButton(self.outputFrame_4) + self.pushButton_4.setGeometry(QtCore.QRect(20, 620, 40, 50)) + self.pushButton_4.setText(_fromUtf8("")) + self.pushButton_4.setIcon(icon11) + self.pushButton_4.setIconSize(QtCore.QSize(40, 50)) + self.pushButton_4.setCheckable(False) + self.pushButton_4.setAutoDefault(False) + self.pushButton_4.setDefault(False) + self.pushButton_4.setFlat(False) + self.pushButton_4.setObjectName(_fromUtf8("pushButton_4")) + self.btnReset_4 = QtGui.QPushButton(self.dockWidgetContents) + self.btnReset_4.setGeometry(QtCore.QRect(90, 1209, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnReset_4.setFont(font) + self.btnReset_4.setObjectName(_fromUtf8("btnReset_4")) + self.btnDesign_4 = QtGui.QPushButton(self.dockWidgetContents) + self.btnDesign_4.setGeometry(QtCore.QRect(210, 1209, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btnDesign_4.setFont(font) + self.btnDesign_4.setAutoDefault(False) + self.btnDesign_4.setDefault(False) + self.btnDesign_4.setFlat(False) + self.btnDesign_4.setObjectName(_fromUtf8("btnDesign_4")) + self.txtPlateWidth = QtGui.QLineEdit(self.dockWidgetContents) + self.txtPlateWidth.setGeometry(QtCore.QRect(150, 510, 160, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtPlateWidth.setFont(font) + self.txtPlateWidth.setObjectName(_fromUtf8("txtPlateWidth")) + self.btn_Reset = QtGui.QPushButton(self.dockWidgetContents) + self.btn_Reset.setGeometry(QtCore.QRect(20, 630, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btn_Reset.setFont(font) + self.btn_Reset.setObjectName(_fromUtf8("btn_Reset")) + self.btn_Design = QtGui.QPushButton(self.dockWidgetContents) + self.btn_Design.setGeometry(QtCore.QRect(140, 630, 100, 30)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.btn_Design.setFont(font) + self.btn_Design.setObjectName(_fromUtf8("btn_Design")) + self.combo_Beam = QtGui.QComboBox(self.dockWidgetContents) + self.combo_Beam.setGeometry(QtCore.QRect(150, 45, 161, 25)) + self.combo_Beam.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.combo_Beam.setMaxVisibleItems(5) + self.combo_Beam.setObjectName(_fromUtf8("combo_Beam")) + self.comboWldSize = QtGui.QComboBox(self.dockWidgetContents) + self.comboWldSize.setGeometry(QtCore.QRect(150, 570, 160, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.comboWldSize.setFont(font) + self.comboWldSize.setFocusPolicy(QtCore.Qt.WheelFocus) + self.comboWldSize.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) + self.comboWldSize.setMaxVisibleItems(5) + self.comboWldSize.setObjectName(_fromUtf8("comboWldSize")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.comboWldSize.addItem(_fromUtf8("")) + self.lbl_connectivity = QtGui.QLabel(self.dockWidgetContents) + self.lbl_connectivity.setGeometry(QtCore.QRect(180, 210, 60, 50)) + self.lbl_connectivity.setScaledContents(True) + self.lbl_connectivity.setObjectName(_fromUtf8("lbl_connectivity")) + self.label_9 = QtGui.QLabel(self.dockWidgetContents) + self.label_9.setGeometry(QtCore.QRect(6, 45, 131, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_9.setFont(font) + self.label_9.setObjectName(_fromUtf8("label_9")) + self.inputDock.setWidget(self.dockWidgetContents) + MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.inputDock) + self.outputDock = QtGui.QDockWidget(MainWindow) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.outputDock.sizePolicy().hasHeightForWidth()) + self.outputDock.setSizePolicy(sizePolicy) + self.outputDock.setMinimumSize(QtCore.QSize(125, 710)) + self.outputDock.setMaximumSize(QtCore.QSize(310, 710)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.outputDock.setFont(font) + self.outputDock.setObjectName(_fromUtf8("outputDock")) + self.dockWidgetContents_2 = QtGui.QWidget() + self.dockWidgetContents_2.setObjectName(_fromUtf8("dockWidgetContents_2")) + self.txtNoBolts = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtNoBolts.setGeometry(QtCore.QRect(200, 120, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtNoBolts.setFont(font) + self.txtNoBolts.setReadOnly(True) + self.txtNoBolts.setObjectName(_fromUtf8("txtNoBolts")) + self.t_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.t_7.setGeometry(QtCore.QRect(0, 120, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.t_7.setFont(font) + self.t_7.setObjectName(_fromUtf8("t_7")) + self.txtShrCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtShrCapacity.setGeometry(QtCore.QRect(200, 30, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtShrCapacity.setFont(font) + self.txtShrCapacity.setText(_fromUtf8("")) + self.txtShrCapacity.setReadOnly(True) + self.txtShrCapacity.setObjectName(_fromUtf8("txtShrCapacity")) + self.txtPitch = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtPitch.setGeometry(QtCore.QRect(200, 240, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtPitch.setFont(font) + self.txtPitch.setReadOnly(True) + self.txtPitch.setObjectName(_fromUtf8("txtPitch")) + self.txtGuage = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtGuage.setGeometry(QtCore.QRect(200, 270, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtGuage.setFont(font) + self.txtGuage.setReadOnly(True) + self.txtGuage.setObjectName(_fromUtf8("txtGuage")) + self.txtBoltCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtBoltCapacity.setGeometry(QtCore.QRect(200, 90, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtBoltCapacity.setFont(font) + self.txtBoltCapacity.setReadOnly(True) + self.txtBoltCapacity.setObjectName(_fromUtf8("txtBoltCapacity")) + self.txt_col = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txt_col.setGeometry(QtCore.QRect(200, 210, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txt_col.setFont(font) + self.txt_col.setReadOnly(True) + self.txt_col.setObjectName(_fromUtf8("txt_col")) + self.txt_row = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txt_row.setGeometry(QtCore.QRect(200, 180, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txt_row.setFont(font) + self.txt_row.setReadOnly(True) + self.txt_row.setObjectName(_fromUtf8("txt_row")) + self.label_152 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_152.setGeometry(QtCore.QRect(0, 270, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_152.setFont(font) + self.label_152.setObjectName(_fromUtf8("label_152")) + self.labl123_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.labl123_7.setGeometry(QtCore.QRect(0, 90, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.labl123_7.setFont(font) + self.labl123_7.setObjectName(_fromUtf8("labl123_7")) + self.txtbearCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtbearCapacity.setGeometry(QtCore.QRect(200, 60, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtbearCapacity.setFont(font) + self.txtbearCapacity.setReadOnly(True) + self.txtbearCapacity.setObjectName(_fromUtf8("txtbearCapacity")) + self.label_153 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_153.setGeometry(QtCore.QRect(0, 300, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_153.setFont(font) + self.label_153.setObjectName(_fromUtf8("label_153")) + self.lbl_col_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.lbl_col_7.setGeometry(QtCore.QRect(0, 210, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_col_7.setFont(font) + self.lbl_col_7.setObjectName(_fromUtf8("lbl_col_7")) + self.label_154 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_154.setGeometry(QtCore.QRect(0, 240, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_154.setFont(font) + self.label_154.setObjectName(_fromUtf8("label_154")) + self.txtEdgeDist = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtEdgeDist.setGeometry(QtCore.QRect(200, 330, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtEdgeDist.setFont(font) + self.txtEdgeDist.setReadOnly(True) + self.txtEdgeDist.setObjectName(_fromUtf8("txtEdgeDist")) + self.lbl_row_7 = QtGui.QLabel(self.dockWidgetContents_2) + self.lbl_row_7.setGeometry(QtCore.QRect(0, 180, 130, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.lbl_row_7.setFont(font) + self.lbl_row_7.setObjectName(_fromUtf8("lbl_row_7")) + self.label_155 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_155.setGeometry(QtCore.QRect(0, 330, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_155.setFont(font) + self.label_155.setObjectName(_fromUtf8("label_155")) + self.label_156 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_156.setGeometry(QtCore.QRect(0, 30, 161, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_156.setFont(font) + self.label_156.setObjectName(_fromUtf8("label_156")) + self.txtEndDist = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtEndDist.setGeometry(QtCore.QRect(200, 300, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtEndDist.setFont(font) + self.txtEndDist.setReadOnly(True) + self.txtEndDist.setObjectName(_fromUtf8("txtEndDist")) + self.label_157 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_157.setGeometry(QtCore.QRect(-1, 0, 66, 20)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.label_157.setFont(font) + self.label_157.setObjectName(_fromUtf8("label_157")) + self.label_158 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_158.setGeometry(QtCore.QRect(0, 60, 179, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_158.setFont(font) + self.label_158.setObjectName(_fromUtf8("label_158")) + self.label_160 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_160.setGeometry(QtCore.QRect(0, 480, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_160.setFont(font) + self.label_160.setObjectName(_fromUtf8("label_160")) + self.txtMomntCapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtMomntCapacity.setGeometry(QtCore.QRect(200, 480, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtMomntCapacity.setFont(font) + self.txtMomntCapacity.setReadOnly(True) + self.txtMomntCapacity.setObjectName(_fromUtf8("txtMomntCapacity")) + self.label_161 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_161.setGeometry(QtCore.QRect(-1, 360, 130, 25)) + font = QtGui.QFont() + font.setPointSize(11) + self.label_161.setFont(font) + self.label_161.setObjectName(_fromUtf8("label_161")) + self.txtExtMomnt = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtExtMomnt.setGeometry(QtCore.QRect(200, 450, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtExtMomnt.setFont(font) + self.txtExtMomnt.setReadOnly(True) + self.txtExtMomnt.setObjectName(_fromUtf8("txtExtMomnt")) + self.label_162 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_162.setGeometry(QtCore.QRect(0, 450, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_162.setFont(font) + self.label_162.setFocusPolicy(QtCore.Qt.NoFocus) + self.label_162.setObjectName(_fromUtf8("label_162")) + self.txtWeldStrng = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtWeldStrng.setGeometry(QtCore.QRect(200, 570, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtWeldStrng.setFont(font) + self.txtWeldStrng.setReadOnly(True) + self.txtWeldStrng.setObjectName(_fromUtf8("txtWeldStrng")) + self.label_163 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_163.setGeometry(QtCore.QRect(0, 540, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_163.setFont(font) + self.label_163.setObjectName(_fromUtf8("label_163")) + self.label_164 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_164.setGeometry(QtCore.QRect(3, 570, 191, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_164.setFont(font) + self.label_164.setObjectName(_fromUtf8("label_164")) + self.txtResltShr = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtResltShr.setGeometry(QtCore.QRect(200, 540, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtResltShr.setFont(font) + self.txtResltShr.setReadOnly(True) + self.txtResltShr.setObjectName(_fromUtf8("txtResltShr")) + self.label_166 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_166.setGeometry(QtCore.QRect(-1, 510, 130, 25)) + font = QtGui.QFont() + font.setPointSize(11) + self.label_166.setFont(font) + self.label_166.setObjectName(_fromUtf8("label_166")) + self.btn_SaveMessages = QtGui.QPushButton(self.dockWidgetContents_2) + self.btn_SaveMessages.setGeometry(QtCore.QRect(50, 610, 200, 30)) + self.btn_SaveMessages.setObjectName(_fromUtf8("btn_SaveMessages")) + self.btn_CreateDesign = QtGui.QPushButton(self.dockWidgetContents_2) + self.btn_CreateDesign.setGeometry(QtCore.QRect(50, 650, 200, 30)) + self.btn_CreateDesign.setObjectName(_fromUtf8("btn_CreateDesign")) + self.plateHeight = QtGui.QLabel(self.dockWidgetContents_2) + self.plateHeight.setGeometry(QtCore.QRect(0, 390, 100, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.plateHeight.setFont(font) + self.plateHeight.setObjectName(_fromUtf8("plateHeight")) + self.txtplate_ht = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtplate_ht.setGeometry(QtCore.QRect(200, 390, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtplate_ht.setFont(font) + self.txtplate_ht.setObjectName(_fromUtf8("txtplate_ht")) + self.txtplate_width = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtplate_width.setGeometry(QtCore.QRect(200, 420, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtplate_width.setFont(font) + self.txtplate_width.setObjectName(_fromUtf8("txtplate_width")) + self.label_2 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_2.setGeometry(QtCore.QRect(0, 420, 100, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setObjectName(_fromUtf8("label_2")) + self.label_10 = QtGui.QLabel(self.dockWidgetContents_2) + self.label_10.setGeometry(QtCore.QRect(0, 150, 200, 22)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.label_10.setFont(font) + self.label_10.setObjectName(_fromUtf8("label_10")) + self.txtboltgrpcapacity = QtGui.QLineEdit(self.dockWidgetContents_2) + self.txtboltgrpcapacity.setGeometry(QtCore.QRect(200, 150, 100, 25)) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.txtboltgrpcapacity.setFont(font) + self.txtboltgrpcapacity.setObjectName(_fromUtf8("txtboltgrpcapacity")) + self.outputDock.setWidget(self.dockWidgetContents_2) + MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.outputDock) + self.actionInput = QtGui.QAction(MainWindow) + icon12 = QtGui.QIcon() + icon12.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/input.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionInput.setIcon(icon12) + self.actionInput.setObjectName(_fromUtf8("actionInput")) + self.actionInputwindow = QtGui.QAction(MainWindow) + icon13 = QtGui.QIcon() + icon13.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/inputview.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionInputwindow.setIcon(icon13) + self.actionInputwindow.setObjectName(_fromUtf8("actionInputwindow")) + self.actionNew = QtGui.QAction(MainWindow) + self.actionNew.setObjectName(_fromUtf8("actionNew")) + self.actionOpen = QtGui.QAction(MainWindow) + self.actionOpen.setObjectName(_fromUtf8("actionOpen")) + self.actionSave = QtGui.QAction(MainWindow) + self.actionSave.setObjectName(_fromUtf8("actionSave")) + self.actionSave_As = QtGui.QAction(MainWindow) + self.actionSave_As.setObjectName(_fromUtf8("actionSave_As")) + self.actionPrint = QtGui.QAction(MainWindow) + self.actionPrint.setObjectName(_fromUtf8("actionPrint")) + self.actionCut = QtGui.QAction(MainWindow) + self.actionCut.setObjectName(_fromUtf8("actionCut")) + self.actionCopy = QtGui.QAction(MainWindow) + self.actionCopy.setObjectName(_fromUtf8("actionCopy")) + self.actionPaste = QtGui.QAction(MainWindow) + self.actionPaste.setObjectName(_fromUtf8("actionPaste")) + self.actionInput_Browser = QtGui.QAction(MainWindow) + self.actionInput_Browser.setObjectName(_fromUtf8("actionInput_Browser")) + self.actionOutput_Browser = QtGui.QAction(MainWindow) + self.actionOutput_Browser.setObjectName(_fromUtf8("actionOutput_Browser")) + self.actionAbout_Osdag = QtGui.QAction(MainWindow) + self.actionAbout_Osdag.setObjectName(_fromUtf8("actionAbout_Osdag")) + self.actionBeam = QtGui.QAction(MainWindow) + self.actionBeam.setObjectName(_fromUtf8("actionBeam")) + self.actionColumn = QtGui.QAction(MainWindow) + self.actionColumn.setObjectName(_fromUtf8("actionColumn")) + self.actionFinplate = QtGui.QAction(MainWindow) + self.actionFinplate.setObjectName(_fromUtf8("actionFinplate")) + self.actionBolt = QtGui.QAction(MainWindow) + self.actionBolt.setObjectName(_fromUtf8("actionBolt")) + self.action2D_view = QtGui.QAction(MainWindow) + self.action2D_view.setObjectName(_fromUtf8("action2D_view")) + self.actionZoom_in = QtGui.QAction(MainWindow) + self.actionZoom_in.setObjectName(_fromUtf8("actionZoom_in")) + self.actionZoom_out = QtGui.QAction(MainWindow) + self.actionZoom_out.setObjectName(_fromUtf8("actionZoom_out")) + self.actionPan = QtGui.QAction(MainWindow) + self.actionPan.setObjectName(_fromUtf8("actionPan")) + self.actionRotate_3D_model = QtGui.QAction(MainWindow) + self.actionRotate_3D_model.setObjectName(_fromUtf8("actionRotate_3D_model")) + self.actionView_2D_on_XY = QtGui.QAction(MainWindow) + self.actionView_2D_on_XY.setObjectName(_fromUtf8("actionView_2D_on_XY")) + self.actionView_2D_on_YZ = QtGui.QAction(MainWindow) + self.actionView_2D_on_YZ.setObjectName(_fromUtf8("actionView_2D_on_YZ")) + self.actionView_2D_on_ZX = QtGui.QAction(MainWindow) + self.actionView_2D_on_ZX.setObjectName(_fromUtf8("actionView_2D_on_ZX")) + self.actionModel = QtGui.QAction(MainWindow) + self.actionModel.setObjectName(_fromUtf8("actionModel")) + self.actionEnlarge_font_size = QtGui.QAction(MainWindow) + self.actionEnlarge_font_size.setObjectName(_fromUtf8("actionEnlarge_font_size")) + self.actionReduce_font_size = QtGui.QAction(MainWindow) + self.actionReduce_font_size.setObjectName(_fromUtf8("actionReduce_font_size")) + self.actionSave_3D_model_as = QtGui.QAction(MainWindow) + self.actionSave_3D_model_as.setObjectName(_fromUtf8("actionSave_3D_model_as")) + self.actionSave_current_2D_image_as = QtGui.QAction(MainWindow) + self.actionSave_current_2D_image_as.setObjectName(_fromUtf8("actionSave_current_2D_image_as")) + self.actionSave_log_messages = QtGui.QAction(MainWindow) + self.actionSave_log_messages.setObjectName(_fromUtf8("actionSave_log_messages")) + self.actionCreate_design_report = QtGui.QAction(MainWindow) + self.actionCreate_design_report.setObjectName(_fromUtf8("actionCreate_design_report")) + self.actionQuit_fin_plate_design = QtGui.QAction(MainWindow) + self.actionQuit_fin_plate_design.setObjectName(_fromUtf8("actionQuit_fin_plate_design")) + self.menuFile.addAction(self.actionNew) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionOpen) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave_3D_model_as) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave_current_2D_image_as) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionSave_log_messages) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionCreate_design_report) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionQuit_fin_plate_design) + self.menuEdit.addAction(self.actionCut) + self.menuEdit.addAction(self.actionCopy) + self.menuEdit.addAction(self.actionPaste) + self.menuView.addAction(self.actionEnlarge_font_size) + self.menuView.addSeparator() + self.menuView.addAction(self.actionReduce_font_size) + self.menuHelp.addAction(self.actionAbout_Osdag) + self.menuGraphics.addAction(self.actionZoom_in) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionZoom_out) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionPan) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionRotate_3D_model) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionView_2D_on_XY) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionView_2D_on_YZ) + self.menuGraphics.addSeparator() + self.menuGraphics.addAction(self.actionView_2D_on_ZX) + self.menubar.addAction(self.menuFile.menuAction()) + self.menubar.addAction(self.menuEdit.menuAction()) + self.menubar.addAction(self.menuView.menuAction()) + self.menubar.addAction(self.menuGraphics.menuAction()) + self.menubar.addAction(self.menuHelp.menuAction()) + + self.retranslateUi(MainWindow) + self.mytabWidget.setCurrentIndex(-1) + self.comboWldSize.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + MainWindow.setWindowTitle(_translate("MainWindow", "Fin Plate", None)) + self.btnInput.setText(_translate("MainWindow", "input", None)) + self.btnOutput.setText(_translate("MainWindow", "...", None)) + self.btnZmOut.setToolTip(_translate("MainWindow", "Zoom In", None)) + self.btnZmOut.setText(_translate("MainWindow", "...", None)) + self.btnZmIn.setToolTip(_translate("MainWindow", "Zoom Out", None)) + self.btnZmIn.setText(_translate("MainWindow", "...", None)) + self.btnSvgSave.setToolTip(_translate("MainWindow", "Save Image", None)) + self.btnSvgSave.setText(_translate("MainWindow", "...", None)) + self.btnTotatAcw.setToolTip(_translate("MainWindow", "Rotate Left", None)) + self.btnTotatAcw.setText(_translate("MainWindow", "...", None)) + self.btnRotatCw.setToolTip(_translate("MainWindow", "Rotate Right", None)) + self.btnRotatCw.setText(_translate("MainWindow", "...", None)) + self.btn3D.setToolTip(_translate("MainWindow", "3D Model", None)) + self.btn3D.setText(_translate("MainWindow", "3D", None)) + self.chkBxBeam.setText(_translate("MainWindow", "Beam", None)) + self.chkBxCol.setText(_translate("MainWindow", "Column", None)) + self.chkBxFinplate.setText(_translate("MainWindow", "Finplate", None)) + self.btn_front.setToolTip(_translate("MainWindow", "Front View", None)) + self.btn_top.setToolTip(_translate("MainWindow", "Top View", None)) + self.btn_side.setToolTip(_translate("MainWindow", "Side View", None)) + self.menuFile.setTitle(_translate("MainWindow", "File", None)) + self.menuEdit.setTitle(_translate("MainWindow", "Edit", None)) + self.menuView.setTitle(_translate("MainWindow", "View", None)) + self.menuHelp.setTitle(_translate("MainWindow", "Help", None)) + self.menuGraphics.setTitle(_translate("MainWindow", "Graphics", None)) + self.inputDock.setWindowTitle(_translate("MainWindow", "INPUT", None)) + self.txtFy.setPlaceholderText(_translate("MainWindow", "000.000", None)) + self.label_3.setText(_translate("MainWindow", "<html><head/><body><p>Column section *</p></body></html>", None)) + self.comboConnLoc.setItemText(0, _translate("MainWindow", "Select Connectivity", None)) + self.comboConnLoc.setItemText(1, _translate("MainWindow", "Column flange-Beam web", None)) + self.comboConnLoc.setItemText(2, _translate("MainWindow", "Column web-Beam web", None)) + self.txtFu.setPlaceholderText(_translate("MainWindow", "000.000", None)) + self.label.setText(_translate("MainWindow", "<html><head/><body><p>Connecting members</p></body></html>", None)) + self.label_4.setText(_translate("MainWindow", "<html><head/><body><p>Connectivity *</p></body></html>", None)) + self.lbl_fu.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-style:italic;\">f</span><span style=\" font-style:italic; vertical-align:sub;\">u </span>(MPa) * </p></body></html>", None)) + self.lbl_fy.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-style:italic;\">f</span><span style=\" vertical-align:sub;\">y (</span>MPa) *</p></body></html>", None)) + self.label_18.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Factored load</span></p></body></html>", None)) + self.lbl_shear.setText(_translate("MainWindow", "Shear force (kN) *", None)) + self.label_5.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_6.setText(_translate("MainWindow", "Grade *", None)) + self.label_7.setText(_translate("MainWindow", "<html><head/><body><p>Diameter (mm) <span style=\" color:#555500;\">*</span></p></body></html>", None)) + self.label_8.setText(_translate("MainWindow", "Type *", None)) + self.comboDaimeter.setItemText(0, _translate("MainWindow", "Diameter of Bolt", None)) + self.comboDaimeter.setItemText(1, _translate("MainWindow", "5", None)) + self.comboDaimeter.setItemText(2, _translate("MainWindow", "6", None)) + self.comboDaimeter.setItemText(3, _translate("MainWindow", "8", None)) + self.comboDaimeter.setItemText(4, _translate("MainWindow", "10", None)) + self.comboDaimeter.setItemText(5, _translate("MainWindow", "12", None)) + self.comboDaimeter.setItemText(6, _translate("MainWindow", "16", None)) + self.comboDaimeter.setItemText(7, _translate("MainWindow", "20", None)) + self.comboDaimeter.setItemText(8, _translate("MainWindow", "24", None)) + self.comboDaimeter.setItemText(9, _translate("MainWindow", "30", None)) + self.comboDaimeter.setItemText(10, _translate("MainWindow", "36", None)) + self.lbl_width_2.setText(_translate("MainWindow", "Width (mm)", None)) + self.label_40.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_41.setText(_translate("MainWindow", "<html><head/><body><p>Thickness (mm) *</p></body></html>", None)) + self.lbl_len_2.setText(_translate("MainWindow", "Height (mm)", None)) + self.comboPlateThick_2.setItemText(0, _translate("MainWindow", "Thickness of Plate", None)) + self.comboPlateThick_2.setItemText(1, _translate("MainWindow", "6", None)) + self.comboPlateThick_2.setItemText(2, _translate("MainWindow", "8", None)) + self.comboPlateThick_2.setItemText(3, _translate("MainWindow", "10", None)) + self.comboPlateThick_2.setItemText(4, _translate("MainWindow", "12", None)) + self.label_42.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_43.setText(_translate("MainWindow", "<html><head/><body><p>Thickness (mm) *</p></body></html>", None)) + self.label_44.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_45.setText(_translate("MainWindow", "Shear Capacity (kN)", None)) + self.label_46.setText(_translate("MainWindow", "<html><head/><body><p>Bearing Capacity (kN)</p></body></html>", None)) + self.labl123_2.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of Bolt (kN)</p></body></html>", None)) + self.t_2.setText(_translate("MainWindow", "No. of Bolts", None)) + self.label_47.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.label_48.setText(_translate("MainWindow", "End Distance (mm)", None)) + self.label_49.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_50.setText(_translate("MainWindow", "Weld Strength (kN/mm)", None)) + self.label_51.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.label_52.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_53.setText(_translate("MainWindow", "Edge Distance (mm)", None)) + self.label_54.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_55.setText(_translate("MainWindow", "<html><head/><body><p>Resultant Shear (kN/mm)</p></body></html>", None)) + self.label_56.setText(_translate("MainWindow", "External Moment (kNm)", None)) + self.label_57.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_58.setText(_translate("MainWindow", "Moment Capacity (KNm)", None)) + self.lbl_col_2.setText(_translate("MainWindow", "No. of Column", None)) + self.lbl_row_2.setText(_translate("MainWindow", "No. of Row", None)) + self.label_59.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; color:#00007f;\">OUTPUT</span></p></body></html>", None)) + self.btnReset_2.setText(_translate("MainWindow", "Reset", None)) + self.btnDesign_2.setText(_translate("MainWindow", "Design", None)) + self.label_60.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_61.setText(_translate("MainWindow", "Shear Capacity (kN)", None)) + self.label_62.setText(_translate("MainWindow", "<html><head/><body><p>Bearing Capacity (kN)</p></body></html>", None)) + self.labl123_3.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of Bolt (kN)</p></body></html>", None)) + self.t_3.setText(_translate("MainWindow", "No. of Bolts", None)) + self.label_63.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.label_64.setText(_translate("MainWindow", "End Distance (mm)", None)) + self.label_65.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_66.setText(_translate("MainWindow", "Weld Strength (kN/mm)", None)) + self.label_67.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.label_68.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_69.setText(_translate("MainWindow", "Edge Distance (mm)", None)) + self.label_70.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_71.setText(_translate("MainWindow", "<html><head/><body><p>Resultant Shear (kN/mm)</p></body></html>", None)) + self.label_72.setText(_translate("MainWindow", "External Moment (kNm)", None)) + self.label_73.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_74.setText(_translate("MainWindow", "Moment Capacity (KNm)", None)) + self.lbl_col_3.setText(_translate("MainWindow", "No. of Column", None)) + self.lbl_row_3.setText(_translate("MainWindow", "No. of Row", None)) + self.label_75.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; color:#00007f;\">OUTPUT</span></p></body></html>", None)) + self.btnReset_3.setText(_translate("MainWindow", "Reset", None)) + self.btnDesign_3.setText(_translate("MainWindow", "Design", None)) + self.label_76.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_77.setText(_translate("MainWindow", "Shear Capacity (kN)", None)) + self.label_78.setText(_translate("MainWindow", "<html><head/><body><p>Bearing Capacity (kN)</p></body></html>", None)) + self.labl123_4.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of Bolt (kN)</p></body></html>", None)) + self.t_4.setText(_translate("MainWindow", "No. of Bolts", None)) + self.label_79.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.label_80.setText(_translate("MainWindow", "End Distance (mm)", None)) + self.label_81.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_82.setText(_translate("MainWindow", "Weld Strength (kN/mm)", None)) + self.label_83.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.label_84.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.label_85.setText(_translate("MainWindow", "Edge Distance (mm)", None)) + self.label_86.setText(_translate("MainWindow", "Thickness (mm)", None)) + self.label_87.setText(_translate("MainWindow", "<html><head/><body><p>Resultant Shear (kN/mm)</p></body></html>", None)) + self.label_88.setText(_translate("MainWindow", "External Moment (kNm)", None)) + self.label_89.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_90.setText(_translate("MainWindow", "Moment Capacity (KNm)", None)) + self.lbl_col_4.setText(_translate("MainWindow", "No. of Column", None)) + self.lbl_row_4.setText(_translate("MainWindow", "No. of Row", None)) + self.label_91.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; color:#00007f;\">OUTPUT</span></p></body></html>", None)) + self.btnReset_4.setText(_translate("MainWindow", "Reset", None)) + self.btnDesign_4.setText(_translate("MainWindow", "Design", None)) + self.btn_Reset.setText(_translate("MainWindow", "Reset", None)) + self.btn_Design.setText(_translate("MainWindow", "Design", None)) + self.comboWldSize.setItemText(0, _translate("MainWindow", "Select Weld Sizes", None)) + self.comboWldSize.setItemText(1, _translate("MainWindow", "3", None)) + self.comboWldSize.setItemText(2, _translate("MainWindow", "5", None)) + self.comboWldSize.setItemText(3, _translate("MainWindow", "6", None)) + self.comboWldSize.setItemText(4, _translate("MainWindow", "8", None)) + self.comboWldSize.setItemText(5, _translate("MainWindow", "10", None)) + self.label_9.setText(_translate("MainWindow", "Beam section *", None)) + self.outputDock.setWindowTitle(_translate("MainWindow", "OUTPUT", None)) + self.t_7.setText(_translate("MainWindow", "No. of bolts", None)) + self.label_152.setText(_translate("MainWindow", "Gauge (mm)", None)) + self.labl123_7.setText(_translate("MainWindow", "<html><head/><body><p>Capacity of bolt (kN)</p></body></html>", None)) + self.label_153.setText(_translate("MainWindow", "End distance (mm)", None)) + self.lbl_col_7.setText(_translate("MainWindow", "No. of columns", None)) + self.label_154.setText(_translate("MainWindow", "Pitch (mm)", None)) + self.lbl_row_7.setText(_translate("MainWindow", "No. of rows", None)) + self.label_155.setText(_translate("MainWindow", "Edge distance (mm)", None)) + self.label_156.setText(_translate("MainWindow", "Shear capacity (kN)", None)) + self.label_157.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Bolt</span></p></body></html>", None)) + self.label_158.setText(_translate("MainWindow", "<html><head/><body><p>Bearing capacity (kN)</p></body></html>", None)) + self.label_160.setText(_translate("MainWindow", "Moment capacity (kNm)", None)) + self.label_161.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Plate</span></p></body></html>", None)) + self.label_162.setText(_translate("MainWindow", "<html><head/><body><p>Moment demand (kNm)</p></body></html>", None)) + self.label_163.setText(_translate("MainWindow", "<html><head/><body><p>Shear demand (kN/mm)</p></body></html>", None)) + self.label_164.setText(_translate("MainWindow", "Weld strength (kN/mm)", None)) + self.label_166.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600; font-style:italic;\">Weld</span></p></body></html>", None)) + self.btn_SaveMessages.setText(_translate("MainWindow", "Save messages", None)) + self.btn_CreateDesign.setText(_translate("MainWindow", "Create design report", None)) + self.plateHeight.setText(_translate("MainWindow", "Height (mm)", None)) + self.label_2.setText(_translate("MainWindow", "Width (mm)", None)) + self.label_10.setText(_translate("MainWindow", "Bolt group capacity (kN)", None)) + self.actionInput.setText(_translate("MainWindow", "Input", None)) + self.actionInput.setToolTip(_translate("MainWindow", "Input browser", None)) + self.actionInputwindow.setText(_translate("MainWindow", "inputwindow", None)) + self.actionNew.setText(_translate("MainWindow", "New", None)) + self.actionOpen.setText(_translate("MainWindow", "Open", None)) + self.actionSave.setText(_translate("MainWindow", "Save design", None)) + self.actionSave_As.setText(_translate("MainWindow", "Save As", None)) + self.actionPrint.setText(_translate("MainWindow", "Print", None)) + self.actionCut.setText(_translate("MainWindow", "Cut", None)) + self.actionCopy.setText(_translate("MainWindow", "Copy", None)) + self.actionPaste.setText(_translate("MainWindow", "Paste", None)) + self.actionInput_Browser.setText(_translate("MainWindow", "Input Browser", None)) + self.actionOutput_Browser.setText(_translate("MainWindow", "Output Browser", None)) + self.actionAbout_Osdag.setText(_translate("MainWindow", "About Finplate", None)) + self.actionBeam.setText(_translate("MainWindow", "Beam", None)) + self.actionColumn.setText(_translate("MainWindow", "Column", None)) + self.actionFinplate.setText(_translate("MainWindow", "Finplate", None)) + self.actionBolt.setText(_translate("MainWindow", "Bolt", None)) + self.action2D_view.setText(_translate("MainWindow", "2D view", None)) + self.actionZoom_in.setText(_translate("MainWindow", "Zoom in", None)) + self.actionZoom_out.setText(_translate("MainWindow", "Zoom out", None)) + self.actionPan.setText(_translate("MainWindow", "Pan", None)) + self.actionRotate_3D_model.setText(_translate("MainWindow", "Rotate 3D model", None)) + self.actionView_2D_on_XY.setText(_translate("MainWindow", "View 2D on XY", None)) + self.actionView_2D_on_YZ.setText(_translate("MainWindow", "View 2D on YZ", None)) + self.actionView_2D_on_ZX.setText(_translate("MainWindow", "View 2D on ZX", None)) + self.actionModel.setText(_translate("MainWindow", "Model", None)) + self.actionEnlarge_font_size.setText(_translate("MainWindow", "Enlarge font size", None)) + self.actionReduce_font_size.setText(_translate("MainWindow", "Reduce font size", None)) + self.actionSave_3D_model_as.setText(_translate("MainWindow", "Save 3D model as", None)) + self.actionSave_current_2D_image_as.setText(_translate("MainWindow", "Save 2D image as", None)) + self.actionSave_log_messages.setText(_translate("MainWindow", "Save log messages", None)) + self.actionCreate_design_report.setText(_translate("MainWindow", "Create design report", None)) + self.actionQuit_fin_plate_design.setText(_translate("MainWindow", "Quit fin plate design", None)) + +import icons_rc diff --git a/Connections/Shear/Finplate/weld.py b/Connections/Shear/Finplate/weld.py new file mode 100644 index 0000000..b508bfa --- /dev/null +++ b/Connections/Shear/Finplate/weld.py @@ -0,0 +1,44 @@ +''' +Created on 29-Nov-2014 + +@author: deepa +''' +import numpy +from ModelUtils import * + +class Weld(object): + + def __init__(self,L, W, T): + self.L = L + self.W = W + self.T = T + self.secOrigin = numpy.array([0, 0, 0]) + self.uDir = numpy.array([1.0, 0, 0]) + self.wDir = numpy.array([0.0, 0, 1.0]) + self.computeParams() + + def place(self, secOrigin, uDir, wDir): + self.secOrigin = secOrigin + self.uDir = uDir + self.wDir = wDir + self.computeParams() + + def computeParams(self): + self.vDir = numpy.cross(self.wDir, self.uDir) + self.a1 = self.secOrigin + (self.W/2.0) * self.uDir + (self.L/2.0) * self.vDir + self.a2 = self.secOrigin + (-self.W/2.0) * self.uDir + (self.L/2.0) * self.vDir + self.a3 = self.secOrigin + (-self.W/2.0) * self.uDir + (-self.L/2.0) * self.vDir + self.a4 = self.secOrigin + (self.W/2.0) * self.uDir + (-self.L/2.0) * self.vDir + self.points = [self.a1, self.a2, self.a3, self.a4] + + + def createModel(self): + edges = makeEdgesFromPoints(self.points) + wire = makeWireFromEdges(edges) + aFace = makeFaceFromWire(wire) + extrudeDir = self.T * self.wDir # extrudeDir is a numpy array + prism = makePrismFromFace(aFace, extrudeDir) + + return prism + +
\ No newline at end of file |