پرش به


تصویر

ارتباط با دیتابیس مستقر در وب توسط سی شارپ با استفاده از وب سرویس PHP

PHP #C سی شارپ ابوالفضل عربی وب سرویس Web Service آزاد بندرعباس

  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
1 پاسخ برای این موضوع

#1 ابوالفضل عربی

ابوالفضل عربی

    Administrator

  • مدیران ارشد
  • 99 ارسال
  • مکان : بندرعباس ، تهران

ارسالی 27 December 2017 - 08:17 PM

با عرض سلام و درود.

یکی از دغدغه هایی که اکثر طراحان نرم افزار امروزه با آن روبرو هستند استفاده از داده های مستقر در یک هاست می باشد که یکی از بهترین روش ها استفاده از وب سرویس می باشد.

در پست زیر در نظر داریم از طریق یک وب سرویس نوشته شده به زبان php با استفاده از زبان سی شارپ به دیتابیس MySql متصل شویم.

 

در آموزش زیر ما فرض میکنیم که قرار است عملیات را در LocalHost انجام دهیم.

 

ابتدا یک دیتابیس با نام dbwebservice ایجاد و فایلی با نام تست ایجاد و کد زیر را در آن ذخیره و   Import تا جدول مربوطه ایجاد گردد.

-- phpMyAdmin SQL Dump
-- version 4.6.6
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Generation Time: Aug 18, 2017 at 10:56 AM
-- Server version: 5.5.56-cll-lve
-- PHP Version: 5.6.30

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `ayaskc_webService`
--

-- --------------------------------------------------------

--
-- Table structure for table `tblStudent`
--

CREATE TABLE `tblStudent` (
  `stuName` varchar(20) COLLATE utf8_persian_ci NOT NULL,
  `stuFamil` varchar(20) COLLATE utf8_persian_ci NOT NULL,
  `stuTell` varchar(11) COLLATE utf8_persian_ci NOT NULL,
  `stuAddress` varchar(200) COLLATE utf8_persian_ci NOT NULL,
  `stuId` varchar(10) COLLATE utf8_persian_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;

--
-- Dumping data for table `tblStudent`
--

INSERT INTO `tblStudent` (`stuName`, `stuFamil`, `stuTell`, `stuAddress`, `stuId`) VALUES
('ابوالفضل', 'عربی', '09380291826', 'بندرعباس - دانشگاه آزاد بندرعباس', '1'),
('وحید', 'محمد زاده', '09352148796', 'بندرعباس - دانشگاه سما', '2'),
('مهدی', 'منتظر', '09362145698', 'بندرعباس - دانشگاه سما', '3'),
('محسن', 'صفری', '09192563245', 'بندرعباس - دانشگاه آزاد', '4');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tblStudent`
--
ALTER TABLE `tblStudent`
  ADD PRIMARY KEY (`stuId`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

سپس قطه کد زیر را با نام connector.php ذخیره نمایید.

<?php
header('Content-type: text/html');
define("APIKEY", "AbolfazlArabi");

function dbconnection() {

	
	$dbHost = "localhost";
	$dbUser = "root";
	$dbPass = "";
	$dbName = 'dbwebservice';
		$connect = new mysqli($dbHost,$dbUser,$dbPass,$dbName);
		mysqli_set_charset($connect , 'utf8');
 
    return $connect;
}


if(isset($_POST["apikey"]) && isset($_POST["stuId"]) && $_POST["func"]==1 ) {
    if($_POST["apikey"] == APIKEY) {
        $param = addslashes(htmlentities(trim($_POST["stuId"])));
        $connect = dbconnection();
        $sqlCommand = "SELECT * FROM tblStudent where stuId = '$param'";
        $result = $connect->query($sqlCommand);
		while($row = mysqli_fetch_array($result))
		{
            echo $row["stuName"].",".$row["stuFamil"].",".$row["stuTell"].",".$row["stuAddress"];
      }
    } else {
        echo "APIKEY invalid";
    }
} elseif(isset($_POST["apikey"]) &&  $_POST["func"]==2 ) {
    if($_POST["apikey"] == APIKEY) {

        $connect = dbconnection();
        $sqlCommand = "SELECT * FROM tblStudent";
        $result = $connect->query($sqlCommand);
		while($row = mysqli_fetch_array($result))
		{
            echo $row["stuName"].",".$row["stuFamil"].",".$row["stuTell"].",".$row["stuAddress"].",";
      }
    } else {
        echo "APIKEY invalid";
    }
}  elseif(isset($_POST["apikey"])&& isset($_POST["stuId"]) &&  $_POST["func"]==3 ) {
    if($_POST["apikey"] == APIKEY) {
         $stuId = trim($_POST["stuId"]);
         $stuName = trim($_POST["stuName"]);
         $stuFamil = trim($_POST["stuFamil"]);
         $stuTell = trim($_POST["stuTell"]);
         $stuAddress = trim($_POST["stuAddress"]);
        $connect = dbconnection();
        $sqlCommand = "insert into tblStudent(stuId,stuName,stuFamil,stuTell,stuAddress) values ('$stuId','$stuName','$stuFamil','$stuTell','$stuAddress')";
        $connect->query($sqlCommand);
	
    } else {
        echo "APIKEY invalid";
    }
}else {
    echo "Irandelphi Web Service.";
}

?>

حال کافی است ویژوال استودیو را باز نموده ویک پروژه با نام post_get_information ایجاد  و سپس  یک کلاس با نام MyWebRequest.cs ایجاد و کد زیر را در آن قرار می دهیم.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;


namespace post_get_information
{
    class MyWebRequest
    {
        private WebRequest request;
        private Stream dataStream;

        private string status;

        public String Status
        {
            get
            {
                return status;
            }
            set
            {
                status = value;
            }
        }

        public MyWebRequest(string url)
        {
            // Create a request using a URL that can receive a post.

            request = WebRequest.Create(url);
        }

        public MyWebRequest(string url, string method)
            : this(url)
        {

            if (method.Equals("GET") || method.Equals("POST"))
            {
                // Set the Method property of the request to POST.
                request.Method = method;
            }
            else
            {
                throw new Exception("Invalid Method Type");
            }
        }

        public MyWebRequest(string url, string method, string data)
            : this(url, method)
        {

            // Create POST data and convert it to a byte array.
            string postData = data;
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            // Set the ContentType property of the WebRequest.
            request.ContentType = "application/x-www-form-urlencoded";

            // Set the ContentLength property of the WebRequest.
            request.ContentLength = byteArray.Length;

            // Get the request stream.
            dataStream = request.GetRequestStream();

            // Write the data to the request stream.
            dataStream.Write(byteArray, 0, byteArray.Length);

            // Close the Stream object.
            dataStream.Close();

        }

        public string GetResponse()
        {
            // Get the original response.
            WebResponse response = request.GetResponse();

            this.Status = ((HttpWebResponse)response).StatusDescription;

            // Get the stream containing all content returned by the requested server.
            dataStream = response.GetResponseStream();

            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);

            // Read the content fully up to the end.
            string responseFromServer = reader.ReadToEnd();

            // Clean up the streams.
            reader.Close();
            dataStream.Close();
            response.Close();

            return responseFromServer;
        }
    }
}

در ادامه بر روی فرم یک Button  با نام Button1 و 5 تکست باکس با نام های زیر در روی فرم قرار می دهیم.

 

txtid

txtname

txtfamil

txttell

txtaddress

 

و سپس روی فرم کلیک و کدهای زیر را جایگزین کدهای  Form1.cs می نماییم.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace post_get_information
{
    public partial class Form1 : Form
    {
      //  string urlWebService = "http://iaubnd.ir/webService/connector.php";//web
        string urlWebService = "http://localhost:90/webService/connector.php";//local
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                MyWebRequest myRequerst =new MyWebRequest (urlWebService, "POST","apikey=AbolfazlArabi&stuId="+txtid.Text + "&func=1");
                string s = myRequerst.GetResponse();
              
               // MessageBox.Show(s);
                string[] values = s.Split(',');
                for (int i = 0; i < values.Length ;i++)
                {
                    values[i] = values[i].Trim();
                    txtname.Text = values[0];
                    txtfamil.Text = values[1];
                    txttell.Text = values[2];
                    txtaddress.Text = values[3];
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " <-خطای روبرو رخ داده است");
              
            }
        }

      

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}

چنانچه مایل باشید تمامی اطلاعات را که در وب سرویس ما با  نام  func2 در دسترس است در فرم خود داشته باشید ، ابتدا یک لیست باکس با نام listBox1 بر روی فرم قرار و سپس Button2 را اضافه و قطعه کد زیر را درClick Event مربوطه به جهت نمایش تمامی اطلاعات  قرار می دهیم.

 private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                listBox1.Items.Clear();
                MyWebRequest myRequerst = new MyWebRequest(urlWebService, "POST", "apikey=AbolfazlArabi&func=2");
               
                string s = myRequerst.GetResponse();
               //  MessageBox.Show(s);
                string[] values = s.Split(',');

               
                for (int i = 0; i < values.Length-1; i=i+4)
                {
                    values[i] = values[i].Trim();
                    String str = "نام : " + values[i] + " نشان : " + values[i+1] + " تلفن : " + values[i+2] + " آدرس : " + values[i+3]+ " . ";
                    listBox1.Items.Add(str);
                    listBox1.Items.Add("____________________________________________________");

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " <-خطای روبرو رخ داده است");

            }
        }

همچنین چنانچه مایل به درج اطلاعات از سی شارپ به دیتابیس MySql هستید میبایست ابتدا یک Button بر روی فرم قرار داده و  از کد زیر استفاده نمایید.

     private void button1_Click(object sender, EventArgs e)
        {
            try
            {


                MyWebRequest myRequerst = new MyWebRequest(urlWebService, "POST", "apikey=AbolfazlArabi&stuId=" + txtid.Text +"&stuName="+ txtname.Text + "&stuFamil=" + txtfamil.Text + "&stuTell=" + txttell.Text + "&stuAddress=" + txtaddress.Text + "&func=3");
             
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " <-خطای روبرو رخ داده است");

            }
        }

موفق و موید باشید.

 


  • imanazadi این پست را پسندیده است

ابوالفضل عربی
شماره تماس : 09380291826

ایمیل دانشگاهی : abolfazl.arabi@iauba.ac.ir
ایمیل  کاری : info@IranDelphi.ir


#2 ابوالفضل عربی

ابوالفضل عربی

    Administrator

  • مدیران ارشد
  • 99 ارسال
  • مکان : بندرعباس ، تهران

ارسالی 08 June 2018 - 03:56 PM

با عرض سلام و درود.

در ذیل قطعه کدی رو قرار میدم که چنانچه ابتدا مایل باشید وب سرویس رو در Localhost با استفاده از تکنولوژی های تحت وب چک کنید، بتوانید از آن استفاده نمایید.

لازم به ذکر است که قطعه کد زیر با استفاده از تکنولوژی Ajax طراحی شده و لازم است یا url مربوط به jQuery رو اضافه کنیم و یا فایل مربوطه رو ضمیمه کنیم.

همچنین آدرس مکان فایل connector.php رو با توجه به مکان فایل خودتون تنظیم کنید. ( دقت شود اینجا فقط قادریم به عنوان آدرس داخلی اون رو استفاده کنیم و در غیر اینصورت با این کد امکان پذیر نیست )

همچنین در اینجا ما کدهای زیر رو در پوشه ای درون پوشه ی webservice با پسوند php ذخیره کرده ایم.

 

امیدوارم لذت ببرید.



<html>
<head>
<style>

 .flexy {
            display: block;
            width: 100%;
            border: 1px solid #eee;
            height: 90%;
            overflow: auto;
        }

        .flexy thead {
            display: -webkit-flex;
            -webkit-flex-flow: row;
			margin :0%;
			width: 100%;
        }

        .flexy thead tr {
            display: -webkit-flex;
            width: 100%;
			        }

        .flexy tbody {
            display: -webkit-flex;
            height: 85%;
			width: 100%;
            -webkit-flex-flow: row wrap;
			margin :0%;
        }
        .flexy tbody tr{
            display: -webkit-flex;
            width: 100%;

        }

		 .flexy tr td {
            width: 25%;
        }
		
	 .flexy tr th {
            width: 25%;
        }


#responseId{

            height: 40%;
			box-shadow : -2px -2px 2px 2px #888888;
}

table,tr{
			width : 100%;
			text-align:center;
}

		tr:nth-child(even) {background: #CCC}
		tr:nth-child(odd) {background: #FFF}


#StatusId{
		direction : ltr;
		font-size : 10px;
		position : absolute;
		top : 5%;
		left : 2%;
		box-shadow :-2px -2px 2px 2px #992288;
}

   fieldset,#responseId{
                direction:rtl;
                text-align:right;
                background:#F6F6F6;
                border-radius:8px;
                padding:2%;
                width:96%;
            }
  #select {
				position : absolute;
				height:25%;
				right:2%;	
				width:40%;
				top : 62%;
	
  } 
  
  #idButtonSelect{
				position : absolute;
				height:5%;
				right:12%;	
				 width:20%;
				 top : 50%;
  }
  
  #insert{
				position : absolute;
				width:40%;
				height:25%;
				right:50%;
				  top : 62%;
  }
  
  #idButtonInsert{
				position : absolute;
				width:20%;
				height:5%;
				right:62%;
				top : 50%;
  }

label { float: right; width: 40%; margin-right: 1%; text-align: right; }
button { float: right; width: 100%; height:100%; margin: 1%; text-align:center;
box-shadow : -1px -1px 1px 1px #664466; }

input,select{
		width : 40%;
		text-align:center;
		 margin:1%; 
		  border-radius:8px;
		  border:1% solid #8BB4F8;
          padding:1% 2%;
		  }

body{
 background-color: #DFDBE5;
background-image: url("data:image/svg+xml,%3Csvg width='360' height='360' viewBox='0 0 360 360' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%238bb4f8' fill-opacity='0.4' fill-rule='evenodd'%3E%3Cpath d='M0 52.702l8.38-4.838C7.486 45.41 7 42.762 7 40c0-2.762.487-5.41 1.38-7.864L0 27.298v25.404zm0-39.16C6.5 6.176 15.673 1.222 26 .198v17.15c-5.433.95-10.21 3.81-13.616 7.863L0 18.06v-4.518zm0 52.916c6.5 7.366 15.673 12.32 26 13.344v-17.15c-5.433-.95-10.21-3.81-13.616-7.863L0 61.94v4.518zm34 13.344c11.713-1.162 21.94-7.378 28.47-16.437L47.616 54.79C44.21 58.84 39.433 61.7 34 62.652v17.15zm32.476-23.36C68.74 51.424 70 45.86 70 40c0-5.86-1.26-11.425-3.524-16.44L51.62 32.135C52.514 34.59 53 37.238 53 40c0 2.762-.487 5.41-1.38 7.864l14.856 8.577zM62.47 16.634C55.94 7.575 45.713 1.36 34 .198v17.15c5.433.95 10.21 3.81 13.616 7.863l14.854-8.575zM0 50.392l5.976-3.45C5.34 44.738 5 42.41 5 40c0-2.41.34-4.738.976-6.942L0 29.608v20.784zm.503-34.35C6.275 8.942 14.56 3.97 24 2.472v13.253c-4.656 1.147-8.8 3.598-12.018 6.944L.502 16.04zm0 47.916C6.275 71.058 14.56 76.03 24 77.528V64.276c-4.656-1.147-8.8-3.598-12.018-6.944L.502 63.96zM36 77.528c9.44-1.497 17.725-6.47 23.497-13.57l-11.48-6.627C44.8 60.678 40.658 63.13 36 64.276V77.53zm29.505-23.957C67.117 49.357 68 44.78 68 40c0-4.78-.883-9.356-2.495-13.57l-11.48 6.628C54.658 35.262 55 37.59 55 40c0 2.41-.34 4.738-.976 6.942l11.48 6.63zm-6.008-37.528C53.725 8.942 45.44 3.97 36 2.472v13.253c4.656 1.147 8.8 3.598 12.018 6.944l11.48-6.628zM0 85.016l4.624-4.265c2.316 1.447 4.764 2.7 7.323 3.74l-1.2 10.24 2.66.864 5.05-8.99c2.627.648 5.34 1.08 8.12 1.276L28.6 98h2.8l2.024-10.12c2.78-.196 5.492-.628 8.12-1.277l5.048 8.99 2.662-.864-1.2-10.24c2.558-1.04 5.006-2.293 7.322-3.74l7.583 6.996 2.264-1.646-4.31-9.378c2.096-1.768 4.04-3.712 5.808-5.81l9.378 4.312 1.646-2.265-6.995-7.584c1.447-2.316 2.7-4.764 3.74-7.323l10.24 1.2.864-2.66-8.99-5.05c.648-2.627 1.08-5.34 1.276-8.12L88 41.4v-2.8l-10.12-2.024c-.196-2.78-.628-5.492-1.277-8.12l8.99-5.048-.864-2.662-10.24 1.2c-1.04-2.558-2.293-5.006-3.74-7.322l6.996-7.583L76.1 4.777l-9.378 4.31c-1.768-2.096-3.712-4.04-5.81-5.808L62.42 0H0v85.016zm0 2.67l4.84-4.467c1.607.935 3.27 1.785 4.983 2.542L8.606 96.136l5.706 1.854 5.115-9.11c1.806.39 3.65.68 5.523.868L27 100h6l2.05-10.252c1.874-.188 3.717-.48 5.523-.868l5.115 9.11 5.706-1.854-1.217-10.374c1.713-.757 3.376-1.607 4.982-2.543l7.68 7.084 4.854-3.526-4.368-9.503c1.388-1.242 2.707-2.56 3.95-3.95l9.502 4.37 3.526-4.855-7.085-7.68c.935-1.607 1.785-3.27 2.542-4.983l10.374 1.217 1.854-5.706-9.11-5.115c.39-1.806.68-3.65.868-5.523L90 43v-6l-10.252-2.05c-.188-1.874-.48-3.717-.868-5.523l9.11-5.115-1.854-5.706-10.374 1.217c-.757-1.713-1.607-3.376-2.543-4.982l7.084-7.68-3.526-4.854-9.503 4.368c-1.242-1.388-2.56-2.707-3.95-3.95L64.58 0H0v87.685zM30 54c7.732 0 14-6.268 14-14s-6.268-14-14-14-14 6.268-14 14 6.268 14 14 14zm0-2c6.627 0 12-5.373 12-12s-5.373-12-12-12-12 5.373-12 12 5.373 12 12 12zm0-2c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm0-2c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zM122.67 92.05l-.503-6.05h-2.334l-.504 6.05c-2.185.128-4.3.506-6.323 1.107l-2.54-5.506-2.192.8 1.594 5.85c-1.983.86-3.845 1.94-5.557 3.214l-4.274-4.31-1.788 1.5 3.502 4.96c-1.555 1.47-2.94 3.12-4.127 4.913l-5.49-2.587-1.165 2.02 4.982 3.458c-.95 1.898-1.693 3.92-2.196 6.032l-6.04-.553-.404 2.298 5.868 1.546c-.12 1.054-.182 2.125-.182 3.21s.062 2.156.182 3.21l-5.868 1.545.405 2.298 6.038-.553c.503 2.113 1.245 4.134 2.196 6.032l-4.982 3.458 1.166 2.02 5.49-2.587c1.185 1.793 2.57 3.442 4.126 4.914l-3.502 4.96 1.787 1.498 4.273-4.31c1.712 1.274 3.574 2.356 5.556 3.215l-1.595 5.85 2.193.8 2.54-5.507c2.02.6 4.137.98 6.32 1.108l.505 6.05h2.334l.504-6.05c2.185-.128 4.3-.506 6.323-1.107l2.54 5.506 2.192-.8-1.594-5.85c1.983-.86 3.845-1.94 5.557-3.214l4.274 4.31 1.788-1.5-3.502-4.96c1.555-1.47 2.94-3.12 4.127-4.913l5.49 2.587 1.165-2.02-4.982-3.458c.95-1.898 1.693-3.92 2.196-6.032l6.04.553.404-2.298-5.868-1.546c.12-1.054.182-2.125.182-3.21s-.062-2.156-.182-3.21l5.868-1.545-.405-2.298-6.038.553c-.503-2.113-1.245-4.134-2.196-6.032l4.982-3.458-1.166-2.02-5.49 2.587c-1.185-1.793-2.57-3.442-4.126-4.914l3.502-4.96-1.787-1.498-4.273 4.31c-1.712-1.274-3.574-2.356-5.556-3.215l1.595-5.85-2.193-.8-2.54 5.507c-2.02-.6-4.137-.98-6.32-1.108zm-15.198 1.122c-1.02.508-2.004 1.072-2.953 1.687l-4.347-4.378-4.626 3.88 3.532 5.007c-.79.828-1.534 1.7-2.225 2.614l-5.522-2.6-3.02 5.23 4.974 3.457c-.46 1.055-.86 2.14-1.2 3.253l-6.016-.548-1.047 5.947 5.833 1.54c-.033.576-.05 1.155-.05 1.738s.017 1.162.05 1.737l-5.833 1.54 1.048 5.948 6.018-.548c.338 1.112.74 2.198 1.2 3.252l-4.975 3.455 3.02 5.23 5.522-2.6c.69.914 1.434 1.787 2.224 2.616l-3.533 5.007 4.626 3.88 4.346-4.376c.948.616 1.933 1.18 2.952 1.688l-1.622 5.968 5.675 2.066 2.606-5.642c1.09.252 2.2.445 3.33.576l.52 6.204h6.04l.52-6.204c1.13-.13 2.24-.324 3.33-.576l2.605 5.642 5.675-2.066-1.622-5.968c1.02-.508 2.004-1.072 2.953-1.687l4.347 4.378 4.626-3.88-3.532-5.007c.79-.828 1.534-1.7 2.225-2.614l5.522 2.6 3.02-5.23-4.974-3.457c.46-1.055.86-2.14 1.2-3.253l6.016.548 1.047-5.947-5.833-1.54c.033-.576.05-1.155.05-1.738s-.017-1.162-.05-1.737l5.833-1.54-1.048-5.948-6.018.548c-.338-1.112-.74-2.198-1.2-3.252l4.975-3.455-3.02-5.23-5.522 2.6c-.69-.914-1.434-1.787-2.224-2.616l3.533-5.007-4.626-3.88-4.346 4.376c-.948-.616-1.933-1.18-2.952-1.688l1.622-5.968-5.675-2.066-2.606 5.642c-1.09-.252-2.2-.445-3.33-.576L124.02 84h-6.04l-.52 6.204c-1.13.13-2.24.324-3.33.576l-2.605-5.642-5.675 2.066 1.622 5.968zM121 128c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm0-18c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm8.485 3.515c1.953 1.952 5.12 1.952 7.07 0 1.954-1.953 1.954-5.12 0-7.07-1.95-1.954-5.117-1.954-7.07 0-1.952 1.95-1.952 5.117 0 7.07zM133 120c0 2.76 2.24 5 5 5s5-2.24 5-5-2.24-5-5-5-5 2.24-5 5zm-3.515 8.485c-1.952 1.953-1.952 5.12 0 7.07 1.953 1.954 5.12 1.954 7.07 0 1.954-1.95 1.954-5.117 0-7.07-1.95-1.952-5.117-1.952-7.07 0zM121 132c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm-8.485-3.515c-1.953-1.952-5.12-1.952-7.07 0-1.954 1.953-1.954 5.12 0 7.07 1.95 1.954 5.117 1.954 7.07 0 1.952-1.95 1.952-5.117 0-7.07zM109 120c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5 5-2.24 5-5zm3.515-8.485c1.952-1.953 1.952-5.12 0-7.07-1.953-1.954-5.12-1.954-7.07 0-1.954 1.95-1.954 5.117 0 7.07 1.95 1.952 5.117 1.952 7.07 0zM121 106c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm9.9 4.1c1.17 1.172 3.07 1.172 4.242 0 1.172-1.17 1.172-3.07 0-4.242-1.17-1.172-3.07-1.172-4.243 0-1.172 1.17-1.172 3.07 0 4.243zm4.1 9.9c0 1.657 1.343 3 3 3s3-1.343 3-3-1.343-3-3-3-3 1.343-3 3zm-4.1 9.9c-1.172 1.17-1.172 3.07 0 4.242 1.17 1.172 3.07 1.172 4.242 0 1.172-1.17 1.172-3.07 0-4.243-1.17-1.172-3.07-1.172-4.243 0zM121 134c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm-9.9-4.1c-1.17-1.172-3.07-1.172-4.242 0-1.172 1.17-1.172 3.07 0 4.242 1.17 1.172 3.07 1.172 4.243 0 1.172-1.17 1.172-3.07 0-4.243zM107 120c0-1.657-1.343-3-3-3s-3 1.343-3 3 1.343 3 3 3 3-1.343 3-3zm4.1-9.9c1.172-1.17 1.172-3.07 0-4.242-1.17-1.172-3.07-1.172-4.242 0-1.172 1.17-1.172 3.07 0 4.243 1.17 1.172 3.07 1.172 4.243 0zM218.64 113.197c-4.648 2.87-8.574 6.795-11.443 11.442l5.2 3c2.338-3.738 5.505-6.905 9.244-9.243l-3-5.2zm1.73-1c4.672-2.53 9.984-4.025 15.63-4.183v6.003c-4.554.154-8.84 1.358-12.628 3.378l-3.002-5.2zm-14.174 14.173c-2.528 4.672-4.024 9.984-4.182 15.63h6.003c.154-4.554 1.358-8.84 3.378-12.628l-5.2-3.002zM202.014 144c.158 5.646 1.654 10.958 4.182 15.63l5.2-3.002c-2.02-3.787-3.225-8.074-3.38-12.628h-6.002zm5.183 17.36c2.87 4.648 6.795 8.574 11.442 11.443l3-5.2c-3.738-2.338-6.905-5.505-9.243-9.244l-5.2 3zm13.173 12.444c4.672 2.528 9.984 4.024 15.63 4.182v-6.003c-4.554-.154-8.84-1.358-12.628-3.378l-3.002 5.2zm17.63 4.182c5.646-.158 10.958-1.654 15.63-4.182l-3.002-5.2c-3.787 2.02-8.074 3.225-12.628 3.38v6.002zm17.36-5.183c4.648-2.87 8.574-6.795 11.443-11.442l-5.2-3c-2.338 3.738-5.505 6.905-9.244 9.243l3 5.2zm12.444-13.173c2.528-4.672 4.024-9.984 4.182-15.63h-6.003c-.154 4.554-1.358 8.84-3.378 12.628l5.2 3.002zm4.182-17.63c-.158-5.646-1.654-10.958-4.182-15.63l-5.2 3.002c2.02 3.787 3.225 8.074 3.38 12.628h6.002zm-5.183-17.36c-2.87-4.648-6.795-8.574-11.442-11.443l-3 5.2c3.738 2.338 6.905 5.505 9.243 9.244l5.2-3zM238 108.013c5.646.158 10.958 1.654 15.63 4.182l-3.002 5.2c-3.787-2.02-8.074-3.225-12.628-3.38v-6.002zm-20.03 8.023c-3.074 2.173-5.76 4.86-7.933 7.932l1.74 1.003c1.987-2.775 4.42-5.21 7.196-7.196l-1.004-1.74zm5.192-3.004c3.348-1.55 6.998-2.552 10.838-2.898v2.008c-3.477.334-6.787 1.243-9.833 2.63l-1.005-1.74zm-16.13 16.13c-1.548 3.347-2.55 6.997-2.897 10.837h2.008c.334-3.477 1.243-6.787 2.63-9.833l-1.74-1.005zM204.136 146c.346 3.84 1.35 7.49 2.898 10.838l1.74-1.005c-1.387-3.046-2.296-6.356-2.63-9.833h-2.008zm5.902 16.03c2.173 3.074 4.86 5.76 7.932 7.933l1.003-1.74c-2.775-1.987-5.21-4.42-7.196-7.196l-1.74 1.004zm13.125 10.937c3.348 1.55 6.998 2.552 10.838 2.898v-2.008c-3.477-.334-6.787-1.243-9.833-2.63l-1.005 1.74zM240 175.865c3.84-.346 7.49-1.35 10.838-2.898l-1.005-1.74c-3.046 1.387-6.356 2.296-9.833 2.63v2.008zm16.03-5.902c3.074-2.173 5.76-4.86 7.933-7.932l-1.74-1.003c-1.987 2.775-4.42 5.21-7.196 7.196l1.004 1.74zm10.937-13.125c1.55-3.348 2.552-6.998 2.898-10.838h-2.008c-.334 3.477-1.243 6.787-2.63 9.833l1.74 1.005zM269.865 140c-.346-3.84-1.35-7.49-2.898-10.838l-1.74 1.005c1.387 3.046 2.296 6.356 2.63 9.833h2.008zm-5.902-16.03c-2.173-3.074-4.86-5.76-7.932-7.933l-1.003 1.74c2.775 1.987 5.21 4.42 7.196 7.196l1.74-1.004zm-13.125-10.937c-3.348-1.55-6.998-2.552-10.838-2.898v2.008c3.477.334 6.787 1.243 9.833 2.63l1.005-1.74zm-10.32-9.88L240 99l-1-4h-4l-1 4-.52 4.153c-.872.076-1.737.18-2.593.31l-1.51-3.91-1.94-3.638-3.88.968-.003 4.123.5 4.136c-.83.283-1.645.592-2.448.927l-2.414-3.433-2.76-3.063-3.533 1.878.994 4 1.483 3.89c-.733.472-1.45.968-2.15 1.485l-3.187-2.758-3.42-2.305-2.972 2.677 1.933 3.642 2.378 3.41c-.61.643-1.197 1.306-1.763 1.988l-3.678-1.945-3.85-1.475-2.294 3.276 2.703 3.114 3.12 2.82c-.43.757-.837 1.53-1.217 2.315l-4.043-.998-4.092-.5-1.434 3.734 3.377 2.367 3.697 1.977c-.234.836-.443 1.683-.623 2.54l-4.173.01-4.092.504-.488 3.97 3.85 1.48 4.064 1.024c-.013.434-.02.87-.02 1.306 0 .437.007.872.02 1.306l-4.064 1.023-3.85 1.48.49 3.97 4.09.504 4.175.01c.18.856.39 1.703.624 2.54l-3.697 1.975-3.376 2.366 1.435 3.735 4.092-.5 4.042-.997c.38.786.785 1.558 1.215 2.314l-3.12 2.82-2.702 3.115 2.294 3.276 3.85-1.475 3.678-1.945c.566.682 1.154 1.345 1.763 1.988l-2.377 3.41-1.932 3.642 2.972 2.677 3.42-2.304 3.187-2.757c.7.517 1.417 1.013 2.15 1.485l-1.483 3.89-.995 4 3.53 1.878 2.762-3.063 2.414-3.432c.803.336 1.62.645 2.447.928l-.5 4.136.004 4.123 3.88.968 1.94-3.64 1.51-3.91c.856.132 1.72.236 2.594.312L234 187l1 4h4l1-4 .52-4.153c.872-.076 1.737-.18 2.593-.31l1.51 3.91 1.94 3.638 3.88-.968.003-4.123-.5-4.136c.83-.283 1.645-.592 2.448-.927l2.414 3.433 2.76 3.063 3.533-1.878-.994-4-1.483-3.89c.733-.472 1.45-.968 2.15-1.485l3.187 2.758 3.42 2.305 2.972-2.677-1.933-3.642-2.378-3.41c.61-.643 1.197-1.306 1.763-1.988l3.678 1.945 3.85 1.475 2.294-3.276-2.703-3.114-3.12-2.82c.43-.757.837-1.53 1.217-2.315l4.043.998 4.092.5 1.434-3.734-3.377-2.367-3.697-1.977c.234-.836.443-1.683.623-2.54l4.173-.01 4.092-.504.488-3.97-3.85-1.48-4.064-1.024c.013-.434.02-.87.02-1.306 0-.437-.007-.872-.02-1.306l4.064-1.023 3.85-1.48-.49-3.97-4.09-.504-4.175-.01c-.18-.856-.39-1.703-.624-2.54l3.697-1.975 3.376-2.366-1.435-3.735-4.092.5-4.042.997c-.38-.786-.785-1.558-1.215-2.314l3.12-2.82 2.702-3.115-2.294-3.276-3.85 1.475-3.678 1.945c-.566-.682-1.154-1.345-1.763-1.988l2.377-3.41 1.932-3.642-2.972-2.677-3.42 2.304-3.187 2.757c-.7-.517-1.417-1.013-2.15-1.485l1.483-3.89.995-4-3.53-1.878-2.762 3.063-2.414 3.432c-.803-.336-1.62-.645-2.447-.928l.5-4.136-.004-4.123-3.88-.968-1.94 3.64-1.51 3.91c-.856-.132-1.72-.236-2.594-.312zm-14.3 3.398c-1.825.54-3.594 1.213-5.294 2.008l-3.503-4.98-1.38-1.53-.882.468.497 2 2.163 5.674c-1.634.957-3.19 2.033-4.656 3.216l-4.614-3.994-1.71-1.15-.743.668.966 1.82 3.473 4.982c-1.367 1.328-2.635 2.757-3.79 4.277l-5.37-2.84-1.924-.738-.575.82 1.352 1.556 4.52 4.088c-.996 1.595-1.877 3.27-2.632 5.012l-5.893-1.455-2.046-.25-.36.933 1.69 1.184 5.366 2.868c-.582 1.78-1.035 3.615-1.35 5.5l-6.08.012-2.045.252-.122.993 1.924.74 5.904 1.486c-.07.935-.104 1.878-.104 2.83 0 .952.035 1.895.104 2.83l-5.905 1.485-1.925.74.122.993 2.046.252 6.08.013c.314 1.884.767 3.72 1.35 5.5l-5.368 2.867-1.688 1.184.36.933 2.045-.25 5.893-1.455c.755 1.742 1.636 3.417 2.632 5.012l-4.52 4.088-1.352 1.557.574.818 1.924-.737 5.368-2.84c1.156 1.52 2.424 2.95 3.79 4.278l-3.47 4.98-.967 1.822.743.67 1.71-1.152 4.614-3.994c1.466 1.183 3.022 2.26 4.656 3.216l-2.163 5.673-.497 2 .882.47 1.38-1.53 3.504-4.98c1.7.794 3.47 1.467 5.295 2.006l-.728 6.028v2.06l.972.243.97-1.82 2.192-5.675c1.83.36 3.706.588 5.62.675L236 187l.5 2h1l.5-2 .755-6.04c1.913-.087 3.79-.315 5.62-.675l2.192 5.676.97 1.82.97-.24v-2.062l-.726-6.03c1.827-.538 3.596-1.21 5.296-2.006l3.503 4.98 1.38 1.53.882-.468-.497-2-2.163-5.674c1.634-.957 3.19-2.033 4.656-3.216l4.614 3.994 1.71 1.15.743-.668-.966-1.82-3.473-4.982c1.367-1.328 2.635-2.757 3.79-4.277l5.37 2.84 1.924.738.575-.82-1.352-1.556-4.52-4.088c.996-1.595 1.877-3.27 2.632-5.012l5.893 1.455 2.046.25.36-.933-1.69-1.184-5.366-2.868c.582-1.78 1.035-3.615 1.35-5.5l6.08-.012 2.045-.252.122-.993-1.924-.74-5.904-1.486c.07-.935.104-1.878.104-2.83 0-.952-.035-1.895-.104-2.83l5.905-1.485 1.925-.74-.122-.993-2.046-.252-6.08-.013c-.314-1.884-.767-3.72-1.35-5.5l5.368-2.867 1.688-1.184-.36-.933-2.045.25-5.893 1.455c-.755-1.742-1.636-3.417-2.632-5.012l4.52-4.088 1.352-1.557-.574-.818-1.924.737-5.368 2.84c-1.156-1.52-2.424-2.95-3.79-4.278l3.47-4.98.967-1.822-.743-.67-1.71 1.152-4.614 3.994c-1.466-1.183-3.022-2.26-4.656-3.216l2.163-5.673.497-2-.882-.47-1.38 1.53-3.504 4.98c-1.7-.794-3.47-1.467-5.295-2.006l.728-6.028v-2.06l-.972-.243-.97 1.82-2.192 5.675c-1.83-.36-3.706-.588-5.62-.675L238 99l-.5-2h-1l-.5 2-.755 6.04c-1.913.087-3.79.315-5.62.675l-2.192-5.676-.97-1.82-.97.24v2.062l.726 6.03zM237 156c7.18 0 13-5.82 13-13s-5.82-13-13-13-13 5.82-13 13 5.82 13 13 13zm0-2c6.075 0 11-4.925 11-11s-4.925-11-11-11-11 4.925-11 11 4.925 11 11 11zM137.153 27c1.4 13.62 12.227 24.447 25.847 25.847V38.7c-5.877-1.193-10.507-5.823-11.7-11.7h-14.147zm12.563-27c-6.896 4.688-11.665 12.27-12.563 21H151.3c1.193-5.877 5.823-10.507 11.7-11.7V0h-13.284zM169 52.847c13.62-1.4 24.447-12.227 25.847-25.847H180.7c-1.193 5.877-5.823 10.507-11.7 11.7v14.147zM182.284 0c6.896 4.688 11.665 12.27 12.563 21H180.7c-1.193-5.877-5.823-10.507-11.7-11.7V0h13.284zm-42.822 29c2.04 10.903 10.635 19.497 21.538 21.538V40.253c-5.368-1.65-9.603-5.885-11.253-11.253h-10.285zm14.156-29c-7.263 3.755-12.604 10.71-14.156 19h10.285c1.65-5.368 5.885-9.603 11.253-11.253V0h-7.382zM171 50.538c10.903-2.04 19.497-10.635 21.538-21.538h-10.285c-1.65 5.368-5.885 9.603-11.253 11.253v10.285zM178.382 0c7.263 3.755 12.604 10.71 14.156 19h-10.285c-1.65-5.368-5.885-9.603-11.253-11.253V0h7.382zm-40.84 0l.737 1.03c-.574.69-1.123 1.405-1.644 2.138l-7.74-2.9-2 3.464 6.376 5.25c-.374.816-.72 1.648-1.034 2.495l-8.22-.797-1.036 3.864 7.522 3.422c-.15.88-.266 1.773-.35 2.675L122 22v4l8.155 1.36c.083.9.2 1.793.35 2.674l-7.523 3.422 1.035 3.864 8.22-.797c.315.847.66 1.68 1.035 2.495l-6.377 5.25 2 3.464 7.74-2.9c.522.733 1.07 1.447 1.644 2.138l-4.807 6.728 2.83 2.83 6.727-4.807c.69.574 1.405 1.123 2.138 1.644l-2.9 7.74 3.464 2 5.25-6.376c.816.374 1.648.72 2.495 1.034l-.797 8.22 3.864 1.036 3.422-7.522c.88.15 1.773.266 2.675.35L164 68h4l1.36-8.155c.9-.083 1.793-.2 2.674-.35l3.422 7.523 3.864-1.035-.797-8.22c.847-.315 1.68-.66 2.495-1.035l5.25 6.377 3.464-2-2.9-7.74c.733-.522 1.447-1.07 2.138-1.644l6.728 4.807 2.83-2.83-4.807-6.727c.574-.69 1.123-1.405 1.644-2.138l7.74 2.9 2-3.464-6.376-5.25c.374-.816.72-1.648 1.034-2.495l8.22.797 1.036-3.864-7.522-3.422c.15-.88.266-1.773.35-2.675L210 26v-4l-8.155-1.36c-.083-.9-.2-1.793-.35-2.674l7.523-3.422-1.035-3.864-8.22.797c-.315-.847-.66-1.68-1.035-2.495l6.377-5.25-2-3.464-7.74 2.9c-.522-.733-1.07-1.447-1.644-2.138l.737-1.03h-56.914zm2.426 0l.836 1.17c-1.242 1.37-2.373 2.84-3.38 4.4l-7.63-2.86-.334.58 6.288 5.175c-.842 1.637-1.555 3.35-2.126 5.128l-8.105-.785-.172.644 7.414 3.372c-.385 1.786-.63 3.624-.72 5.503l-8.04 1.34v.666l8.04 1.34c.09 1.88.335 3.717.72 5.503l-7.415 3.372.172.644 8.105-.785c.57 1.777 1.284 3.49 2.126 5.128l-6.288 5.176.334.58 7.63-2.86c1.007 1.56 2.138 3.03 3.38 4.4l-4.738 6.633.47.47 6.635-4.737c1.37 1.242 2.84 2.373 4.4 3.38l-2.86 7.63.58.334 5.175-6.288c1.637.842 3.35 1.555 5.128 2.126l-.785 8.105.644.172 3.372-7.414c1.786.385 3.624.63 5.503.72l1.34 8.04h.666l1.34-8.04c1.88-.09 3.717-.335 5.503-.72l3.372 7.415.644-.172-.785-8.105c1.777-.57 3.49-1.284 5.128-2.126l5.176 6.288.58-.334-2.86-7.63c1.56-1.007 3.03-2.138 4.4-3.38l6.633 4.738.47-.47-4.737-6.635c1.242-1.37 2.373-2.84 3.38-4.4l7.63 2.86.334-.58-6.288-5.175c.842-1.637 1.555-3.35 2.126-5.128l8.105.785.172-.644-7.414-3.372c.385-1.786.63-3.624.72-5.503l8.04-1.34v-.666l-8.04-1.34c-.09-1.88-.335-3.717-.72-5.503l7.415-3.372-.172-.644-8.105.785c-.57-1.777-1.284-3.49-2.126-5.128l6.288-5.176-.334-.58-7.63 2.86c-1.007-1.56-2.138-3.03-3.38-4.4l.836-1.17h-52.064zM166 34c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm0-2c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zM126.49 208.15c-.32 1.566-.49 3.19-.49 4.85 0 1.66.17 3.284.49 4.85l-10.667 7.954 6 10.392 12.227-5.263c2.412 2.147 5.26 3.815 8.396 4.854L144 249h12l1.554-13.213c3.136-1.04 5.984-2.707 8.396-4.854l12.227 5.263 6-10.392-10.667-7.954c.32-1.566.49-3.19.49-4.85 0-1.66-.17-3.284-.49-4.85l10.667-7.954-6-10.392-12.227 5.263c-2.412-2.147-5.26-3.815-8.396-4.854L156 177h-12l-1.554 13.213c-3.136 1.04-5.984 2.707-8.396 4.854l-12.227-5.263-6 10.392 10.667 7.954zm29.246-16.395l-1.5-12.755h-8.47l-1.502 12.755c-3.755 1.012-7.113 2.992-9.79 5.658l-11.8-5.08-4.237 7.335 10.297 7.677c-.48 1.805-.734 3.7-.734 5.655s.255 3.85.734 5.655l-10.297 7.677 4.236 7.336 11.802-5.08c2.676 2.665 6.034 4.645 9.79 5.657l1.5 12.755h8.47l1.5-12.755c3.756-1.012 7.114-2.992 9.79-5.658l11.802 5.08 4.236-7.335-10.297-7.677c.48-1.805.734-3.7.734-5.655s-.255-3.85-.734-5.655l10.297-7.677-4.236-7.336-11.802 5.08c-2.676-2.665-6.034-4.645-9.79-5.657zM150 225c6.627 0 12-5.373 12-12s-5.373-12-12-12-12 5.373-12 12 5.373 12 12 12zm0-2c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zM136.115 288.14c-1.552-.73-3.286-1.14-5.115-1.14-1.83 0-3.563.41-5.115 1.14l3.013 5.218c.654-.244 1.362-.377 2.102-.377.74 0 1.448.134 2.102.378l3.013-5.217zm1.73 1.003c2.86 1.99 4.81 5.19 5.114 8.857h-6.024c-.243-1.458-1.01-2.738-2.102-3.64l3.012-5.217zm-13.69 0c-2.86 1.99-4.81 5.19-5.114 8.857h6.024c.243-1.458 1.01-2.738 2.102-3.64l-3.012-5.217zM119.04 300c.304 3.668 2.256 6.868 5.114 8.857l3.012-5.217c-1.09-.902-1.86-2.182-2.102-3.64h-6.023zm6.845 9.86c1.552.73 3.286 1.14 5.115 1.14 1.83 0 3.563-.41 5.115-1.14l-3.013-5.218c-.654.244-1.362.377-2.102.377-.74 0-1.448-.134-2.102-.378l-3.013 5.217zm11.96-1.003c2.86-1.99 4.81-5.19 5.114-8.857h-6.024c-.243 1.458-1.01 2.738-2.102 3.64l3.012 5.217zm-4.672-19.62c-.7-.155-1.427-.237-2.173-.237s-1.473.082-2.173.237l1.052 1.822c.365-.052.74-.08 1.12-.08.38 0 .755.028 1.12.08l1.053-1.823zm5.195 3.002c.98 1.065 1.73 2.345 2.174 3.76h-2.103c-.284-.702-.664-1.354-1.123-1.94l1.05-1.82zm-14.736 0c-.98 1.065-1.73 2.345-2.174 3.76h2.103c.284-.702.664-1.354 1.123-1.94l-1.05-1.82zm-2.174 9.76c.444 1.415 1.195 2.695 2.174 3.76l1.05-1.82c-.458-.586-.838-1.238-1.12-1.94h-2.104zm7.37 6.763c.7.155 1.426.237 2.172.237.746 0 1.473-.082 2.173-.237l-1.052-1.822c-.365.052-.74.08-1.12.08-.38 0-.755-.028-1.12-.08l-1.053 1.823zm9.54-3.002c.98-1.065 1.73-2.345 2.174-3.76h-2.103c-.284.702-.664 1.354-1.123 1.94l1.05 1.82zm15.164-15.043c-.224-.61-.472-1.207-.743-1.792l2.96-3.06-1-1.73-4.134 1.034c-.373-.53-.766-1.04-1.18-1.536l2.07-3.726-1.414-1.414-3.726 2.07c-.495-.414-1.007-.807-1.535-1.18l1.036-4.133-1.732-1-3.06 2.96c-.584-.27-1.182-.518-1.79-.742l-.07-4.255-1.933-.518-2.19 3.652c-.63-.108-1.27-.192-1.92-.25L132 271h-2l-1.17 4.097c-.65.058-1.29.142-1.92.25l-2.19-3.652-1.933.518-.07 4.255c-.61.224-1.207.472-1.792.743l-3.06-2.96-1.73 1 1.034 4.134c-.53.373-1.04.766-1.536 1.18l-3.726-2.07-1.414 1.414 2.07 3.726c-.414.495-.807 1.007-1.18 1.535l-4.133-1.036-1 1.732 2.96 3.06c-.27.584-.518 1.182-.742 1.79l-4.255.07-.518 1.933 3.652 2.19c-.108.63-.192 1.27-.25 1.92L103 298v2l4.097 1.17c.058.65.142 1.29.25 1.92l-3.652 2.19.518 1.933 4.255.07c.224.61.472 1.207.743 1.792l-2.96 3.06 1 1.73 4.134-1.034c.373.53.766 1.04 1.18 1.536l-2.07 3.726 1.414 1.414 3.726-2.07c.495.414 1.007.807 1.535 1.18l-1.036 4.133 1.732 1 3.06-2.96c.584.27 1.182.518 1.79.742l.07 4.255 1.933.518 2.19-3.652c.63.108 1.27.192 1.92.25L130 327h2l1.17-4.097c.65-.058 1.29-.142 1.92-.25l2.19 3.652 1.933-.518.07-4.255c.61-.224 1.207-.472 1.792-.743l3.06 2.96 1.73-1-1.034-4.134c.53-.373 1.04-.766 1.536-1.18l3.726 2.07 1.414-1.414-2.07-3.726c.414-.495.807-1.007 1.18-1.535l4.133 1.036 1-1.732-2.96-3.06c.27-.584.518-1.182.742-1.79l4.255-.07.518-1.933-3.652-2.19c.108-.63.192-1.27.25-1.92L159 300v-2l-4.097-1.17c-.058-.65-.142-1.29-.25-1.92l3.652-2.19-.518-1.933-4.255-.07zM109 299c0 12.15 9.85 22 22 22s22-9.85 22-22-9.85-22-22-22-22 9.85-22 22zm18 0c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm2 0c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm15 0c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm2 0c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-8.5 11.258c-1.913 1.105-2.57 3.55-1.464 5.464 1.104 1.914 3.55 2.57 5.464 1.465 1.913-1.105 2.57-3.55 1.464-5.465-1.104-1.913-3.55-2.568-5.464-1.464zm-13 0c-1.913-1.104-4.36-.45-5.464 1.464-1.105 1.914-.45 4.36 1.464 5.465 1.913 1.104 4.36.45 5.464-1.465 1.105-1.913.45-4.36-1.464-5.464zM118 299c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zm6.5-11.258c1.913-1.105 2.57-3.55 1.464-5.464-1.104-1.914-3.55-2.57-5.464-1.465-1.913 1.105-2.57 3.55-1.464 5.465 1.104 1.913 3.55 2.568 5.464 1.464zm13 0c1.913 1.104 4.36.45 5.464-1.464 1.105-1.914.45-4.36-1.464-5.465-1.913-1.104-4.36-.45-5.464 1.465-1.105 1.913-.45 4.36 1.464 5.464zm1 24.248c-.957.553-1.284 1.776-.732 2.732.552.957 1.775 1.285 2.732.732.957-.552 1.284-1.775.732-2.732-.552-.956-1.775-1.284-2.732-.732zm-15 0c-.957-.552-2.18-.224-2.732.732-.552.957-.225 2.18.732 2.732.957.553 2.18.225 2.732-.732.552-.956.225-2.18-.732-2.732zM116 299c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zm7.5-12.99c.957-.553 1.284-1.776.732-2.732-.552-.957-1.775-1.285-2.732-.732-.957.552-1.284 1.775-.732 2.732.552.956 1.775 1.284 2.732.732zm15 0c.957.552 2.18.224 2.732-.732.552-.957.225-2.18-.732-2.732-.957-.553-2.18-.225-2.732.732-.552.956-.225 2.18.732 2.732zM248.997 275.802c-.643 1.607-.997 3.36-.997 5.198 0 1.837.354 3.59.997 5.198l-33.873 19.556C211.214 298.366 209 289.94 209 281c0-8.94 2.214-17.366 6.124-24.754l33.873 19.556zM251 272.34c2.173-2.758 5.36-4.678 9-5.198v-39.105c-18.067.67-33.822 10.384-42.873 24.746L251 272.34zm0 17.32c2.173 2.758 5.36 4.678 9 5.198v39.105c-18.067-.67-33.822-10.384-42.873-24.746L251 289.66zm13 5.198c3.64-.52 6.827-2.44 9-5.197l33.873 19.557c-9.05 14.362-24.806 24.076-42.873 24.746v-39.105zm11.003-8.66c.643-1.607.997-3.36.997-5.198 0-1.837-.354-3.59-.997-5.198l33.873-19.556C312.786 263.634 315 272.06 315 281c0 8.94-2.214 17.366-6.124 24.754l-33.873-19.556zM273 272.338c-2.173-2.756-5.36-4.676-9-5.196v-39.105c18.067.67 33.822 10.384 42.873 24.746L273 272.34zm-57.042-13.3C212.78 265.687 211 273.135 211 281c0 7.864 1.78 15.312 4.958 21.963l30.622-17.68c-.378-1.363-.58-2.8-.58-4.283 0-1.484.202-2.92.58-4.284l-30.622-17.68zm4.007-6.926c8.486-12.325 22.253-20.733 38.035-21.957v35.35c-2.86.735-5.41 2.242-7.416 4.285l-30.62-17.678zm0 57.776c8.486 12.325 22.253 20.733 38.035 21.957v-35.35c-2.86-.735-5.41-2.242-7.416-4.285l-30.62 17.678zM266 331.845c15.782-1.224 29.55-9.632 38.035-21.957l-30.62-17.678c-2.005 2.043-4.555 3.55-7.415 4.286v35.35zm42.042-28.882c3.178-6.65 4.958-14.1 4.958-21.963 0-7.864-1.78-15.312-4.958-21.963l-30.622 17.68c.378 1.363.58 2.8.58 4.283 0 1.484-.202 2.92-.58 4.284l30.622 17.68zm-4.007-50.85c-8.486-12.326-22.253-20.734-38.035-21.958v35.35c2.86.735 5.41 2.242 7.416 4.285l30.62-17.678zm-59.618-26.4c-3.15 1-6.184 2.264-9.076 3.763l-5.185-6.3-2.31 1.333 2.865 7.646c-2.765 1.774-5.37 3.778-7.786 5.982l-6.65-4.75-1.886 1.886 4.75 6.65c-2.204 2.417-4.208 5.02-5.982 7.786l-7.647-2.865-1.334 2.31 6.3 5.186c-1.5 2.893-2.762 5.927-3.763 9.077l-8.12-.787-.69 2.576 7.43 3.38c-.69 3.157-1.12 6.41-1.272 9.737l-8.06 1.344v2.666l8.06 1.344c.152 3.327.583 6.58 1.272 9.738l-7.428 3.38.69 2.575 8.12-.787c1 3.15 2.263 6.184 3.762 9.076l-6.3 5.185 1.333 2.31 7.646-2.865c1.774 2.765 3.778 5.37 5.982 7.786l-4.75 6.65 1.886 1.886 6.65-4.75c2.417 2.204 5.02 4.208 7.786 5.982l-2.865 7.647 2.31 1.334 5.186-6.3c2.893 1.5 5.927 2.762 9.077 3.763l-.787 8.12 2.576.69 3.38-7.43c3.157.69 6.41 1.12 9.737 1.272l1.344 8.06h2.666l1.344-8.06c3.327-.152 6.58-.583 9.738-1.272l3.38 7.428 2.575-.69-.787-8.12c3.15-1 6.184-2.263 9.076-3.762l5.185 6.3 2.31-1.333-2.865-7.646c2.765-1.774 5.37-3.778 7.786-5.982l6.65 4.75 1.886-1.886-4.75-6.65c2.204-2.417 4.208-5.02 5.982-7.786l7.647 2.865 1.334-2.31-6.3-5.186c1.5-2.893 2.762-5.927 3.763-9.077l8.12.787.69-2.576-7.43-3.38c.69-3.157 1.12-6.41 1.272-9.737l8.06-1.344v-2.666l-8.06-1.344c-.152-3.327-.583-6.58-1.272-9.738l7.428-3.38-.69-2.575-8.12.787c-1-3.15-2.263-6.184-3.762-9.076l6.3-5.185-1.333-2.31-7.646 2.865c-1.774-2.765-3.778-5.37-5.982-7.786l4.75-6.65-1.886-1.886-6.65 4.75c-2.417-2.204-5.02-4.208-7.786-5.982l2.865-7.647-2.31-1.334-5.186 6.3c-2.893-1.5-5.927-2.762-9.077-3.763l.787-8.12-2.576-.69-3.38 7.43c-3.157-.69-6.41-1.12-9.737-1.272l-1.344-8.06h-2.666l-1.344 8.06c-3.327.152-6.58.583-9.738 1.272l-3.38-7.428-2.575.69.787 8.12zm-2.118-1.404c-2.214.768-4.368 1.663-6.454 2.675l-5.248-6.375-5.196 3 2.9 7.74c-1.928 1.31-3.776 2.732-5.534 4.252l-6.73-4.807-4.243 4.243 4.807 6.73c-1.52 1.758-2.94 3.606-4.252 5.534l-7.74-2.9-3 5.196 6.375 5.248c-1.012 2.086-1.907 4.24-2.676 6.453l-8.216-.797-1.553 5.795 7.52 3.42c-.432 2.265-.736 4.575-.904 6.923L194 278v6l8.156 1.36c.168 2.347.472 4.657.903 6.922l-7.52 3.42 1.554 5.795 8.215-.796c.768 2.214 1.663 4.368 2.675 6.454l-6.375 5.248 3 5.196 7.74-2.9c1.31 1.928 2.732 3.776 4.252 5.534l-4.807 6.73 4.243 4.243 6.73-4.807c1.758 1.52 3.606 2.94 5.534 4.252l-2.9 7.74 5.196 3 5.248-6.375c2.086 1.012 4.24 1.907 6.453 2.676l-.797 8.216 5.795 1.553 3.42-7.52c2.265.432 4.575.736 6.923.904L259 349h6l1.36-8.156c2.347-.168 4.657-.472 6.922-.903l3.42 7.52 5.795-1.554-.796-8.215c2.214-.768 4.368-1.663 6.454-2.675l5.248 6.375 5.196-3-2.9-7.74c1.928-1.31 3.776-2.732 5.534-4.252l6.73 4.807 4.243-4.243-4.807-6.73c1.52-1.758 2.94-3.606 4.252-5.534l7.74 2.9 3-5.196-6.375-5.248c1.012-2.086 1.907-4.24 2.676-6.453l8.216.797 1.553-5.795-7.52-3.42c.432-2.265.736-4.575.904-6.923L330 284v-6l-8.156-1.36c-.168-2.347-.472-4.657-.903-6.922l7.52-3.42-1.554-5.795-8.215.796c-.768-2.214-1.663-4.368-2.675-6.454l6.375-5.248-3-5.196-7.74 2.9c-1.31-1.928-2.732-3.776-4.252-5.534l4.807-6.73-4.243-4.243-6.73 4.807c-1.758-1.52-3.606-2.94-5.534-4.252l2.9-7.74-5.196-3-5.248 6.375c-2.086-1.012-4.24-1.907-6.453-2.676l.797-8.216-5.795-1.553-3.42 7.52c-2.265-.432-4.575-.736-6.923-.904L265 213h-6l-1.36 8.156c-2.347.168-4.657.472-6.922.903l-3.42-7.52-5.795 1.554.796 8.215zM262 290c4.97 0 9-4.03 9-9s-4.03-9-9-9-9 4.03-9 9 4.03 9 9 9zm0-2c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zM0 244.514l1.76.254 6.41 3.07c1.4-2.066 3.01-3.98 4.798-5.71l-4.14-5.782-1.01-3.07 1.227-1.028 2.847 1.527 4.974 5.078c2.006-1.457 4.17-2.712 6.458-3.735l-1.91-6.84.1-3.23 1.505-.547 2.153 2.41 2.933 6.467c2.36-.673 4.818-1.112 7.35-1.288L36 225l1.2-3h1.6l1.2 3 .545 7.09c2.53.175 4.99.614 7.35 1.287l2.932-6.468 2.154-2.41 1.505.548.1 3.23-1.91 6.84c2.29 1.023 4.453 2.278 6.46 3.735l4.973-5.078 2.847-1.527 1.226 1.028-1.008 3.07-4.14 5.782c1.788 1.73 3.398 3.644 4.797 5.71l6.41-3.07 3.197-.46.8 1.385-1.998 2.54-5.862 4.012c1.082 2.22 1.943 4.566 2.553 7.012l7.07-.693 3.162.66.278 1.576-2.746 1.703-6.885 1.767c.125 1.226.19 2.47.19 3.73 0 1.26-.065 2.504-.19 3.73l6.884 1.767 2.746 1.703-.278 1.576-3.163.66-7.07-.693c-.61 2.446-1.47 4.793-2.552 7.012l5.86 4.013 2 2.54-.8 1.385-3.2-.46-6.41-3.072c-1.398 2.068-3.008 3.982-4.796 5.712l4.14 5.782 1.01 3.07-1.227 1.028-2.847-1.527-4.974-5.078c-2.006 1.457-4.17 2.712-6.458 3.735l1.91 6.84-.1 3.23-1.505.547-2.153-2.41-2.933-6.467c-2.36.673-4.818 1.112-7.35 1.288L40 311l-1.2 3h-1.6l-1.2-3-.545-7.09c-2.53-.175-4.99-.614-7.35-1.287l-2.932 6.468-2.154 2.41-1.505-.548-.1-3.23 1.91-6.84c-2.29-1.023-4.453-2.278-6.46-3.735l-4.973 5.078-2.847 1.527-1.226-1.028 1.008-3.07 4.14-5.782c-1.788-1.73-3.398-3.644-4.797-5.71l-6.41 3.07-1.76.254v-3.882l5.622-3.85c-1.082-2.218-1.943-4.565-2.553-7.01l-3.07.3v-4.752l2.19-.562C2.066 270.504 2 269.26 2 268c0-1.26.065-2.504.19-3.73L0 263.708v-4.752l3.07.3c.61-2.445 1.47-4.792 2.552-7.01L0 248.395v-3.882zm0-1.876l2.76.398 4.753 2.277c.885-1.187 1.837-2.32 2.852-3.396l-3.07-4.286-1.68-5.115 3.063-2.57 4.746 2.544 3.686 3.762c1.23-.812 2.513-1.554 3.84-2.22l-1.416-5.07.17-5.383 3.758-1.37 3.59 4.015 2.174 4.793c1.427-.337 2.886-.594 4.37-.766L34 225l2-5h4l2 5 .404 5.252c1.484.172 2.943.43 4.37.766l2.174-4.793 3.59-4.014 3.758 1.37.17 5.38-1.416 5.07c1.327.668 2.61 1.41 3.84 2.222l3.686-3.763 4.746-2.546 3.064 2.57-1.682 5.117-3.07 4.287c1.016 1.075 1.968 2.21 2.853 3.396l4.752-2.277 5.33-.768 2 3.464-3.33 4.232-4.343 2.973c.585 1.35 1.093 2.743 1.52 4.17l5.235-.513 5.27 1.1.696 3.94-4.577 2.838-5.104 1.31c.043.735.064 1.474.064 2.218s-.02 1.483-.064 2.217l5.105 1.31 4.578 2.838-.695 3.94-5.27 1.1-5.237-.512c-.426 1.427-.934 2.82-1.52 4.17l4.343 2.973 3.33 4.232-2 3.464-5.33-.768-4.753-2.277c-.885 1.187-1.837 2.32-2.852 3.396l3.07 4.286 1.68 5.115-3.063 2.57-4.746-2.544-3.686-3.762c-1.23.812-2.513 1.554-3.84 2.22l1.416 5.07-.17 5.383-3.758 1.37-3.59-4.015-2.174-4.793c-1.427.337-2.886.594-4.37.766L42 311l-2 5h-4l-2-5-.404-5.252c-1.484-.172-2.943-.43-4.37-.766l-2.174 4.793-3.59 4.014-3.758-1.37-.17-5.38 1.416-5.07c-1.327-.668-2.61-1.41-3.84-2.222l-3.686 3.763-4.746 2.546-3.064-2.57 1.682-5.117 3.07-4.287c-1.016-1.075-1.968-2.21-2.853-3.396l-4.752 2.277-2.76.398v-8.174l3.103-2.125c-.585-1.35-1.093-2.743-1.52-4.17L0 279.048v-8.815l.064-.016C.02 269.483 0 268.744 0 268s.02-1.483.064-2.217L0 265.767v-8.815l1.584.155c.426-1.427.934-2.82 1.52-4.17L0 250.812v-8.174zM38 272c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-2c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm0-26c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm24 24c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm-24 24c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-24-24c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zm24-26c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm26 26c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-26 26c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-26-26c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zm3.373 22.627c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm0-45.254c-4.687 4.686-4.687 12.284 0 16.97 4.686 4.686 12.284 4.686 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0zm45.254 0c-4.686-4.687-12.284-4.687-16.97 0-4.686 4.686-4.686 12.284 0 16.97 4.686 4.686 12.284 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97zm0 45.254c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.686 4.686-4.686 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0zM45.07 260.93c3.906 3.904 10.238 3.904 14.143 0 3.905-3.906 3.905-10.238 0-14.143-3.905-3.905-10.237-3.905-14.142 0-3.904 3.905-3.904 10.237 0 14.142zm0 14.14c-3.904 3.906-3.904 10.238 0 14.143 3.906 3.905 10.238 3.905 14.143 0 3.905-3.905 3.905-10.237 0-14.142-3.905-3.904-10.237-3.904-14.142 0zm-14.14 0c-3.906-3.904-10.238-3.904-14.143 0-3.905 3.906-3.905 10.238 0 14.143 3.905 3.905 10.237 3.905 14.142 0 3.904-3.905 3.904-10.237 0-14.142zm0-14.14c3.904-3.906 3.904-10.238 0-14.143-3.906-3.905-10.238-3.905-14.143 0-3.905 3.905-3.905 10.237 0 14.142 3.905 3.904 10.237 3.904 14.142 0zM261.822 15.54c-1.043.36-2.06.783-3.042 1.26l-2.914-3.013-1.732 1 1.154 4.034c-.91.618-1.78 1.288-2.61 2.005l-3.598-2.16-1.415 1.415 2.16 3.6c-.717.828-1.387 1.7-2.004 2.608l-4.033-1.154-1 1.732 3.013 2.914c-.477.983-.9 2-1.26 3.042l-4.19-.07-.518 1.932 3.665 2.035c-.203 1.066-.347 2.155-.425 3.262L239 41v2l4.072 1.018c.078 1.107.222 2.196.425 3.263l-3.665 2.036.517 1.932 4.19-.07c.36 1.043.783 2.06 1.26 3.042l-3.013 2.914 1 1.732 4.034-1.154c.618.91 1.288 1.78 2.005 2.61l-2.16 3.598 1.415 1.415 3.6-2.16c.828.717 1.7 1.387 2.608 2.004l-1.154 4.033 1.732 1 2.914-3.013c.983.477 2 .9 3.042 1.26l-.07 4.19 1.932.518 2.035-3.665c1.066.203 2.155.347 3.262.425L270 74h2l1.018-4.072c1.107-.078 2.196-.222 3.263-.425l2.036 3.665 1.932-.517-.07-4.19c1.043-.36 2.06-.783 3.042-1.26l2.914 3.013 1.732-1-1.154-4.034c.91-.618 1.78-1.288 2.61-2.005l3.598 2.16 1.415-1.415-2.16-3.6c.717-.828 1.387-1.7 2.004-2.608l4.033 1.154 1-1.732-3.013-2.914c.477-.983.9-2 1.26-3.042l4.19.07.518-1.932-3.665-2.035c.203-1.066.347-2.155.425-3.262L303 43v-2l-4.072-1.018c-.078-1.107-.222-2.196-.425-3.263l3.665-2.036-.517-1.932-4.19.07c-.36-1.043-.783-2.06-1.26-3.042l3.013-2.914-1-1.732-4.034 1.154c-.618-.91-1.288-1.78-2.005-2.61l2.16-3.598-1.415-1.415-3.6 2.16c-.828-.717-1.7-1.387-2.608-2.004l1.154-4.033-1.732-1-2.914 3.013c-.983-.477-2-.9-3.042-1.26l.07-4.19-1.932-.518-2.035 3.665c-1.066-.203-2.155-.347-3.262-.425L272 10h-2l-1.018 4.072c-1.107.078-2.196.222-3.263.425l-2.036-3.665-1.932.517.07 4.19zM271 68c14.36 0 26-11.64 26-26s-11.64-26-26-26-26 11.64-26 26 11.64 26 26 26zm0-9c9.39 0 17-7.61 17-17s-7.61-17-17-17-17 7.61-17 17 7.61 17 17 17zm0-2c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15-8.284 0-15 6.716-15 15 0 8.284 6.716 15 15 15zm0-8c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm0-2c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm0-14c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm9 9c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-9 9c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-9-9c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zM309.933 95.785c-.284.33-.54.683-.77 1.056l-4.267-.5-.618 1.903 3.748 2.104c-.017.215-.026.433-.026.653 0 .22.01.438.026.653l-3.748 2.104.618 1.902 4.268-.5c.228.372.485.725.77 1.055l-1.796 3.905 1.618 1.176 3.158-2.913c.4.167.814.303 1.243.404L315 113h2l.843-4.213c.43-.1.844-.237 1.243-.404l3.158 2.913 1.618-1.176-1.795-3.905c.284-.33.54-.683.77-1.056l4.267.5.618-1.903-3.748-2.104c.017-.215.026-.433.026-.653 0-.22-.01-.438-.026-.653l3.748-2.104-.618-1.902-4.268.5c-.228-.372-.485-.725-.77-1.055l1.796-3.905-1.618-1.176-3.158 2.913c-.4-.167-.814-.303-1.243-.404L317 89h-2l-.843 4.213c-.43.1-.844.237-1.243.404l-3.158-2.913-1.618 1.176 1.795 3.905zM316 106c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM75.734 179.206c-.562.453-1.075.966-1.528 1.528l-2.098-.6-1 1.732 1.567 1.515c-.258.666-.448 1.366-.56 2.09L70 186v2l2.116.53c.11.724.3 1.424.56 2.09l-1.568 1.514 1 1.732 2.098-.6c.453.562.966 1.075 1.528 1.528l-.6 2.098 1.732 1 1.515-1.567c.666.258 1.366.448 2.09.56L81 199h2l.53-2.116c.724-.11 1.424-.3 2.09-.56l1.514 1.568 1.732-1-.6-2.098c.562-.453 1.075-.966 1.528-1.528l2.098.6 1-1.732-1.567-1.515c.258-.666.448-1.366.56-2.09L94 188v-2l-2.116-.53c-.11-.724-.3-1.424-.56-2.09l1.568-1.514-1-1.732-2.098.6c-.453-.562-.966-1.075-1.528-1.528l.6-2.098-1.732-1-1.515 1.567c-.666-.258-1.366-.448-2.09-.56L83 175h-2l-.53 2.116c-.724.11-1.424.3-2.09.56l-1.514-1.568-1.732 1 .6 2.098zm2.146.935c-1.12.676-2.064 1.62-2.74 2.74l-.145.253C74.36 184.28 74 185.597 74 187s.36 2.72.995 3.867l.146.253c.676 1.12 1.62 2.064 2.74 2.74l.253.145c1.146.634 2.464.995 3.867.995s2.72-.36 3.867-.995l.253-.146c1.12-.676 2.064-1.62 2.74-2.74l.145-.253c.634-1.146.995-2.464.995-3.867s-.36-2.72-.995-3.867l-.146-.253c-.676-1.12-1.62-2.064-2.74-2.74l-.253-.145C84.72 179.36 83.403 179 82 179s-2.72.36-3.867.995l-.253.146zM82 193c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zM360 139.08c-1.242.543-2.43 1.183-3.558 1.912l3.558 3.8v-5.712zm0 22.678l-14.172 6.646c-.54-2.044-.828-4.19-.828-6.404 0-7.82 3.59-14.8 9.21-19.384l5.79 10.497v8.645zm0 23.162c-6.088-2.66-10.912-7.675-13.32-13.893l13.32-2.56v16.453zm0-43.638c-.13.063-.26.127-.388.192l.388.414v-.606zm0 18.284l-12.73 5.97c-.178-1.153-.27-2.334-.27-3.536 0-6.328 2.556-12.06 6.69-16.218l6.31 11.44v2.344zm0 23.152c-4.502-2.177-8.186-5.778-10.47-10.218l10.47-2.01v12.228zm0 7.928l-4.46 6.58-4.11-2.004 2.536-7.862c-1.856-1.176-3.574-2.55-5.124-4.09l-7.085 4.234-2.877-3.553 5.652-6.087c-1.144-1.833-2.095-3.798-2.826-5.867l-8.236.702-1.028-4.455 7.733-2.988c-.116-1.07-.175-2.155-.175-3.255s.06-2.186.175-3.255l-7.733-2.988 1.028-4.455 8.236.702c.73-2.07 1.682-4.034 2.826-5.867l-5.652-6.088 2.877-3.554 7.085 4.235c1.55-1.54 3.268-2.914 5.124-4.09l-2.535-7.862 4.11-2.004 4.46 6.58v57.292zm0 3.537l-3.792 5.594-7.19-3.507 2.602-8.07c-1.075-.757-2.1-1.577-3.074-2.457l-7.27 4.346-5.034-6.218 5.816-6.265c-.633-1.13-1.2-2.303-1.693-3.512l-8.458.72-1.8-7.795 7.95-3.073c-.037-.644-.057-1.293-.057-1.947 0-.654.02-1.303.058-1.947l-7.95-3.073 1.8-7.795 8.457.72c.494-1.21 1.06-2.382 1.693-3.512l-5.816-6.265 5.035-6.217 7.27 4.347c.972-.88 1.998-1.7 3.073-2.456l-2.602-8.07 7.19-3.507 3.792 5.594v64.366zM34.172 168.404c.54-2.044.828-4.19.828-6.404 0-7.82-3.59-14.8-9.21-19.384l-8.673 15.726c.386.75.657 1.57.79 2.434l16.265 7.628zm-.85 2.623c-3.464 8.94-11.917 15.39-21.942 15.936l2.227-17.82c.77-.39 1.468-.9 2.07-1.506l17.644 3.39zM0 139.08c3.062-1.338 6.444-2.08 10-2.08 4.997 0 9.652 1.466 13.558 3.992l-12.278 13.11c-.417-.067-.844-.102-1.28-.102-.436 0-.863.035-1.28.102L0 144.792v-5.712zm0 22.678l2.093-.982c.133-.865.404-1.684.79-2.434L0 153.112v8.646zm0 23.162c2.664 1.164 5.57 1.877 8.62 2.043l-2.227-17.82c-.77-.39-1.468-.9-2.07-1.506l-4.323.83v16.453zm0-43.638C3.024 139.82 6.416 139 10 139c3.738 0 7.268.892 10.388 2.474l-9.87 10.54c-.172-.01-.345-.014-.518-.014-.173 0-.346.004-.517.013L0 141.888v-.606zm0 18.284l.34-.16c.09-.336.197-.665.32-.986L0 157.223v2.343zm0 23.152c1.972.954 4.102 1.634 6.34 1.992l-1.792-14.326c-.29-.188-.57-.39-.836-.608L0 170.49v12.228zm13.66 1.992c7.344-1.174 13.526-5.824 16.81-12.21l-14.182-2.724c-.267.217-.547.42-.836.608l-1.79 14.326zm19.07-19.174c.178-1.153.27-2.334.27-3.536 0-6.328-2.556-12.06-6.69-16.218l-6.97 12.638c.123.32.23.65.32.987l13.07 6.13zM0 133.354l.193.285c2.027-.7 4.153-1.19 6.35-1.443L7.713 124h4.573l1.17 8.197c2.198.252 4.324.742 6.35 1.442l4.654-6.866 4.11 2.004-2.536 7.862c1.856 1.176 3.574 2.55 5.124 4.09l7.085-4.234 2.877 3.553-5.652 6.087c1.144 1.833 2.095 3.798 2.826 5.867l8.236-.702 1.028 4.455-7.733 2.988c.116 1.07.175 2.155.175 3.255s-.06 2.186-.175 3.255l7.733 2.988-1.028 4.455-8.236-.702c-.73 2.07-1.682 4.034-2.826 5.867l5.652 6.088-2.877 3.554-7.085-4.235c-1.55 1.54-3.268 2.914-5.124 4.09l2.535 7.862-4.11 2.004-4.653-6.865c-2.027.7-4.153 1.19-6.35 1.443L12.287 200H7.713l-1.17-8.197c-2.198-.252-4.324-.742-6.35-1.442l-.194.286v-57.292zm0-3.537l.995 1.468c1.238-.363 2.507-.652 3.802-.864L6 122h8l1.203 8.42c1.295.213 2.564.502 3.802.865l4.787-7.062 7.19 3.507-2.602 8.07c1.075.757 2.1 1.577 3.074 2.457l7.27-4.346 5.034 6.218-5.816 6.265c.633 1.13 1.2 2.303 1.693 3.512l8.458-.72 1.8 7.795-7.95 3.073c.037.644.057 1.293.057 1.947 0 .654-.02 1.303-.058 1.947l7.95 3.073-1.8 7.795-8.457-.72c-.494 1.21-1.06 2.382-1.693 3.512l5.816 6.265-5.035 6.217-7.27-4.347c-.972.88-1.998 1.7-3.073 2.456l2.602 8.07-7.19 3.507-4.787-7.062c-1.238.363-2.507.652-3.802.864L14 202H6l-1.203-8.42c-1.295-.213-2.564-.502-3.802-.865L0 194.183v-64.366zM10 156c-3.314 0-6 2.686-6 6s2.686 6 6 6 6-2.686 6-6-2.686-6-6-6zm0 2c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zM149.716 360c3.863-2.626 8.393-4.344 13.284-4.847V360h-13.284zm32.568 0c-3.863-2.626-8.393-4.344-13.284-4.847V360h13.284zm-28.666 0c2.29-1.183 4.77-2.05 7.382-2.538V360h-7.382zm24.764 0c-2.29-1.183-4.77-2.05-7.382-2.538V360h7.382zm-40.84 0l-4.07-5.698 2.83-2.83 6.728 4.807c.69-.574 1.405-1.123 2.138-1.644l-2.9-7.74 3.464-2 5.25 6.376c.816-.374 1.648-.72 2.495-1.034l-.797-8.22 3.864-1.036 3.422 7.522c.88-.15 1.773-.266 2.675-.35L164 340h4l1.36 8.155c.9.083 1.793.2 2.674.35l3.422-7.523 3.864 1.035-.797 8.22c.847.315 1.68.66 2.495 1.035l5.25-6.377 3.464 2-2.9 7.74c.733.522 1.447 1.07 2.138 1.644l6.728-4.807 2.83 2.83-4.07 5.697h-56.915zm2.426 0l-3.902-5.463.47-.47 6.635 4.737c1.37-1.242 2.84-2.373 4.4-3.38l-2.86-7.63.58-.334 5.175 6.288c1.637-.842 3.35-1.555 5.128-2.126l-.785-8.105.644-.172 3.372 7.414c1.786-.385 3.624-.63 5.503-.72l1.34-8.04h.666l1.34 8.04c1.88.09 3.717.335 5.503.72l3.372-7.415.644.172-.785 8.105c1.777.57 3.49 1.284 5.128 2.126l5.176-6.288.58.334-2.86 7.63c1.56 1.007 3.03 2.138 4.4 3.38l6.633-4.738.47.47-3.9 5.464h-52.065zM360 52.702l-6.476 3.74C351.26 51.424 350 45.86 350 40c0-5.86 1.26-11.425 3.524-16.44L360 27.297v25.404zm0-39.16c-.873.988-1.697 2.02-2.47 3.093L360 18.06v-4.518zm0 52.916c-.873-.988-1.697-2.02-2.47-3.093L360 61.94v4.518zm0-16.066l-5.505 3.18C352.883 49.355 352 44.78 352 40c0-4.78.883-9.356 2.495-13.57L360 29.607v20.784zM357.58 0l1.507 3.278c-2.097 1.768-4.04 3.712-5.81 5.81L343.9 4.775l-1.646 2.265 6.995 7.584c-1.447 2.316-2.7 4.764-3.74 7.323l-10.24-1.2-.864 2.66 8.99 5.05c-.648 2.627-1.08 5.34-1.276 8.12L332 38.6v2.8l10.12 2.024c.196 2.78.628 5.492 1.277 8.12l-8.99 5.048.864 2.662 10.24-1.2c1.04 2.558 2.293 5.006 3.74 7.322l-6.996 7.583 1.646 2.264 9.378-4.31c1.768 2.096 3.712 4.04 5.81 5.808l-4.312 9.378 2.265 1.646 2.96-2.73V0h-2.42zm-2.158 0l1.252 2.725c-1.388 1.242-2.707 2.56-3.95 3.95l-9.502-4.37-3.526 4.855 7.085 7.68c-.935 1.607-1.785 3.27-2.542 4.983l-10.374-1.217-1.854 5.706 9.11 5.115c-.39 1.806-.68 3.65-.868 5.523L330 37v6l10.252 2.05c.188 1.874.48 3.717.868 5.523l-9.11 5.115 1.854 5.706 10.374-1.217c.757 1.713 1.607 3.376 2.543 4.982l-7.084 7.68 3.526 4.854 9.503-4.368c1.242 1.388 2.56 2.707 3.95 3.95l-4.37 9.502 4.855 3.526 2.84-2.62V0h-4.578zM0 354.984l4.624 4.265c2.316-1.447 4.764-2.7 7.323-3.74l-1.2-10.24 2.66-.864 5.05 8.99c2.627-.648 5.34-1.08 8.12-1.276L28.6 342h2.8l2.024 10.12c2.78.196 5.492.628 8.12 1.277l5.048-8.99 2.662.864-1.2 10.24c2.558 1.04 5.006 2.293 7.322 3.74l7.583-6.996 2.264 1.646-2.804 6.1H0v-5.016zm0-2.67l4.84 4.467c1.607-.935 3.27-1.785 4.983-2.542l-1.217-10.374 5.706-1.854 5.115 9.11c1.806-.39 3.65-.68 5.523-.868L27 340h6l2.05 10.252c1.874.188 3.717.48 5.523.868l5.115-9.11 5.706 1.854-1.217 10.374c1.713.757 3.376 1.607 4.982 2.543l7.68-7.084 4.854 3.526L64.578 360H0v-7.685zM360 244.514l-1.437-.207-.8 1.386 1.998 2.54.24.163v-3.882zm0 14.442l-4-.392-3.162.66-.278 1.576 2.746 1.703 4.694 1.205v-4.752zm0 13.336l-4.694 1.205-2.746 1.703.278 1.576 3.163.66 4-.392v-4.752zm0 15.312l-.24.164-1.997 2.54.8 1.385 1.437-.207v-3.882zm0 5.758l-2.57.37-2-3.464 3.33-4.232 1.24-.848v8.174zm0-14.314l-3.652.358-5.27-1.1-.696-3.94 4.577-2.838 5.04-1.295v8.815zm0-13.28l-5.04-1.296-4.578-2.837.695-3.94 5.27-1.1 3.653.357v8.815zm0-14.956l-1.24-.848-3.33-4.232 2-3.464 2.57.37v8.174zM360 354.984l-2.96-2.73-2.264 1.646 2.804 6.1H360v-5.016zm0-2.67l-2.84-2.618-4.854 3.526 3.116 6.778H360v-7.685z'/%3E%3C/g%3E%3C/svg%3E");
 direction:rtl;
text-align:right;
   }


</style>
<!-- Include JS File Here -->
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<script>


$(document).ready(function(){

	
$("#btn").click(function(){
var vid= $("#stuId").val();
var vapi = $("#apikey").val();
var vfunc = $("#func").val();
if(vid=='' && vapi=='' && vfunc=='' )
{
alert("Please fill out the form");
}
else if(vid=='' ){alert('شناسه را وارد کنید')}
else if(vapi=='' ){alert('کلید تبادل را وارد کنید')}
else if( vfunc==''){alert('نام تابع مورد نظر را وارد کنید')
}
else{
var posting = $.post("../connector.php", //Required URL of the page on server
{ // Data Sending With Request To Server
stuId:vid,
apikey:vapi,
func:vfunc
});

posting.done(function(response,status){ // Required Callback Function
      var re_data = response;
	  var fields = re_data.split(',');
	   document.getElementById("responseId").innerHTML = "  پاسخ وب سرویس : <br>";

		var tables = "";
		for (var i = 0; i < fields.length-1; i=i+4) {
		  tables += "<tr>" +
			"<td>" + fields[i+0] + "</td>" +
			"<td>" + fields[i+1] + "</td>" +
			"<td>" + fields[i+2] + "</td>" +
			"<td>" + fields[i+3] + "</td>" +
			"</tr>";
		}
		document.getElementById("responseId").innerHTML += '<table class="flexy" border="1">'
		+'<thead> <tr> <th> نام </th><th> فامیل </th><th> تلفن </th><th> آدرس </th> </tr> </thead> <tbody>'
		+ tables + '</tbody></table>';	

	
		var st_data = status;
		document.getElementById("StatusId").innerHTML ="status :";
        document.getElementById("StatusId").innerHTML += "    "+st_data;
		
		$("#form")[0].reset();
});

}
});



$("#btnInsert").click(function(){
var vname= $("#nameInsert").val();
var vApi = $("#apikeyInsert").val();
var vFunc = '3';
var  vFamil = $("#familInsert").val();
var  vAddress = $("#addressInsert").val();
var  vMobile = $("#mobileInsert").val();

if(vname=='' && vApi=='' && vFunc=='' )
{
alert("Please fill out the form");
}
else if(vname=='' ){alert('نام را وارد نمایید')}
else if(vApi=='' ){alert('کلید تبادل را وارد کنید')}
else if( vFamil==''){alert('فامیل مورد نظر را وارد نمایید.')
}
else{
var posting = $.post("../connector.php", //Required URL of the page on server
{ // Data Sending With Request To Server
stuName:vname,
apikey:vApi,
func:vFunc,
stuFamil : vFamil,
stuAddress : vAddress,
stuTell : vMobile
});

posting.done(function(response,status){ // Required Callback Function
      var re_data = response;
	  document.getElementById("responseId").innerHTML ="پاسخ وب سرویس : ";
        document.getElementById("responseId").innerHTML += "<br>"+re_data;

		var st_data = status;
		document.getElementById("StatusId").innerHTML ="status :";
        document.getElementById("StatusId").innerHTML += "	"+st_data;
		
$("#form")[0].reset();
});

var vapi = $("#apikeyInsert").val();
var vfunc = '2';
var posting = $.post("../connector.php", //Required URL of the page on server
{ // Data Sending With Request To Server
apikey:vapi,
func:vfunc
});

posting.done(function(response,status){ // Required Callback Function
      var re_data = response;
	  var fields = re_data.split(',');
	   document.getElementById("responseId").innerHTML = "  پاسخ وب سرویس : <br>";
	
	
	var tables = "";
		for (var i = 0; i < fields.length-1; i=i+4) {
		  tables += "<tr>" +
			"<td>" + fields[i+0] + "</td>" +
			"<td>" + fields[i+1] + "</td>" +
			"<td>" + fields[i+2] + "</td>" +
			"<td>" + fields[i+3] + "</td>" +
			"</tr>";
		}
		document.getElementById("responseId").innerHTML += '<table class="flexy" border="1">'
		+'<thead> <tr> <th> نام </th><th> فامیل </th><th> تلفن </th><th> آدرس </th> </tr> </thead> <tbody>'
		+ tables + '</tbody></table>';	


	
		var st_data = status;
		document.getElementById("StatusId").innerHTML ="status :";
        document.getElementById("StatusId").innerHTML += "    "+st_data;
		
		$("#form")[0].reset();
});



}
});
});





</script>
</head>
<body>
<div id="main">
<div> 
<h2 id="responseId"> پاسخ وب سرویس : </h2>
</div>

<div id="StatusId"> status: </div>





<!-- دریافت اطلاعات-->
<form id="form" method="POST">
 <fieldset id="select" class="flexy">
   <legend>دریافت اطلاعات از کاربر </legend>
    
<div > 
<label for="stuId">
شناسه </label>
<input type="text" name="id" id="stuId" placeholder="stuId" value="1" required />
</div>

<div > 
<label for="apikey">
کلید تبادل </label>
<input type="text" name="api" id="apikey" placeholder="apikey" value="AbolfazlArabi" required />
</div>

<div > 
<label for="func">
تابع مورد نظر </label>
<select name="fun" id="func"> <option> 1</option> <option>2 </option> </select>
</div>

  </fieldset>
 <!-- پایان دریافت اطلاعات-->

<!--درج اطلاعات-->
 <fieldset id="insert" class="flexy">
   <legend>درج اطلاعات کاربر </legend>

<div > 
<label for="apikeyInsert">
کلید تبادل </label>
<input type="text" name="api1" id="apikeyInsert" placeholder="apikeyInsert" value="AbolfazlArabi" required />
</div>

<div > 
<label for="nameInsert">
نام </label>
<input type="text" name="name" id="nameInsert" placeholder="ابوالفضل"  required />
</div>

<div > 
<label for="familInsert">
فامیل </label>
<input type="text" name="famil" id="familInsert" placeholder="عربی"  required />
</div>

<div > 
<label for="mobileInsert">
موبایل </label>
<input type="text" name="mobile" id="mobileInsert" placeholder="09380291826"  required />
</div>

<div > 
<label for="addressInsert">
آدرس </label>
<input type="text" name="address" id="addressInsert" placeholder="آدرس"  required />
</div>

 <!--پایان درج اطلاعات-->

 </fieldset>

</form>


 <fieldset id="idButtonSelect">
<div>
<button id="btn">ارسال اطلاعات فرم</button>
</div>
 </fieldset>

 <fieldset id="idButtonInsert">
<div>
<button id="btnInsert">درج اطلاعات فرم </button>
</div>
 </fieldset>

</div>
</body>
</html>


موفق و موید باشید.

مهندس ابوالفضل عربی

1397/03/18


ابوالفضل عربی
شماره تماس : 09380291826

ایمیل دانشگاهی : abolfazl.arabi@iauba.ac.ir
ایمیل  کاری : info@IranDelphi.ir






همچنین به PHP, #C, سی شارپ, ابوالفضل عربی, وب سرویس, Web Service, آزاد بندرعباس نیز برچسب خورده است

0 کاربر در حال خواندن این موضوع است

0 کاربر، 0 مهمان و 0 عضو مخفی

صفحه ی اینستاگرام  دانشگاه آزاد اسلامی واحد بندرعباس