diff options
author | kinitrupti | 2017-05-12 18:53:46 +0530 |
---|---|---|
committer | kinitrupti | 2017-05-12 18:53:46 +0530 |
commit | 6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d (patch) | |
tree | 22789c9dbe468dae6697dcd12d8e97de4bcf94a2 /Integrated_Circuits_by_P._Raja/Chapter1.ipynb | |
parent | d36fc3b8f88cc3108ffff6151e376b619b9abb01 (diff) | |
download | Python-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.tar.gz Python-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.tar.bz2 Python-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.zip |
Removed duplicates
Diffstat (limited to 'Integrated_Circuits_by_P._Raja/Chapter1.ipynb')
-rwxr-xr-x | Integrated_Circuits_by_P._Raja/Chapter1.ipynb | 706 |
1 files changed, 706 insertions, 0 deletions
diff --git a/Integrated_Circuits_by_P._Raja/Chapter1.ipynb b/Integrated_Circuits_by_P._Raja/Chapter1.ipynb new file mode 100755 index 00000000..0141ff8d --- /dev/null +++ b/Integrated_Circuits_by_P._Raja/Chapter1.ipynb @@ -0,0 +1,706 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:862d4d2200cef4afafe4b0610190ff2ff686b747269183b5312528ef1b293d1a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter01:Analog Integrated Circuit Design"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.1:Pg-10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.1\n",
+ "import math\n",
+ "VDD=1.8;#V\n",
+ "IREF=50;#micro A\n",
+ "IO=IREF;#micro A\n",
+ "L=0.5;#micro m\n",
+ "W=5;#micro m\n",
+ "Vt=0.5;#V\n",
+ "Kn_dash=250;#micro A/V**2\n",
+ "VGS=math.sqrt(IO/(1/2.0*Kn_dash*(W/L)))+Vt;#V\n",
+ "print VGS,\" is the Value of VGS(V) \"\n",
+ "R=(VDD-VGS)/(IREF*10**-6);#ohm\n",
+ "print R/1000,\" is the Value of R(kohm) \"\n",
+ "VDS2=VGS-Vt;#V\n",
+ "VO=VDS2;#V\n",
+ "print VO,\" is the Lowest value of VO(V) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.7 is the Value of VGS(V) \n",
+ "22.0 is the Value of R(kohm) \n",
+ "0.2 is the Lowest value of VO(V) \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.3:Pg-12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.3\n",
+ "\n",
+ "VDD=1.8;#V\n",
+ "Vt=0.6;#V\n",
+ "mpCox=100;#a A/V**2\n",
+ "IREF=80;#micro A\n",
+ "VOmax=1.6;#V\n",
+ "VSG=VDD-VOmax+Vt;#V\n",
+ "VGS=-VSG;#V\n",
+ "VS=VDD;#V\n",
+ "VG=VGS+VS;#V\n",
+ "R=VG/(IREF*10**-6);#ohm\n",
+ "ID=IREF;#micro A\n",
+ "WbyL=2*ID*10**-6/(mpCox*10**-6)/(VGS+Vt)**2;#unitless\n",
+ "print VGS,\"= Value of VGS(V) \"\n",
+ "print VG,\"= Value of VG(V) \"\n",
+ "print R/1000,\"= Value of R(kohm) \"\n",
+ "print WbyL,\"= W/L ratio \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-0.8 = Value of VGS(V) \n",
+ "1.0 = Value of VG(V) \n",
+ "12.5 = Value of R(kohm) \n",
+ "40.0 = W/L ratio \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.4:Pg-19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.4\n",
+ "\n",
+ "Beta=80;#unitless\n",
+ "print \"IREF=IC1+IC1/Beta+IO/Beta)\"\n",
+ "print \"IO/IREF=m implies IC1=IO/m as IC1=IREF\"\n",
+ "print \"IREF=IO*(1/m+1/m/Beta+1/Beta)\"\n",
+ "print \"IO/IREF=m/(1+1/Beta+m/Beta)\"\n",
+ "print \"IO/IREF=m*(1-5/100)\"#for large Beta\n",
+ "m=(1/(1-5.0/100)-1)*Beta-1;#Current transfer ratio\n",
+ "print round(m,2),\" is Largest current transfer ratio \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "IREF=IC1+IC1/Beta+IO/Beta)\n",
+ "IO/IREF=m implies IC1=IO/m as IC1=IREF\n",
+ "IREF=IO*(1/m+1/m/Beta+1/Beta)\n",
+ "IO/IREF=m/(1+1/Beta+m/Beta)\n",
+ "IO/IREF=m*(1-5/100)\n",
+ "3.21 is Largest current transfer ratio \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7:pg-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.7\n",
+ "\n",
+ "Beta=80;#untless\n",
+ "print \"g8=IC1+IC1/Beta+IO/Beta\"\n",
+ "print \"IO/IREF=m implies IC1=IO/m as IC1=IREF\"\n",
+ "print \"IREF=IO*(1/m+1/m/Beta+1/Beta\"\n",
+ "print \"IO/IREF=m/(1+1/Beta+m/Beta\"\n",
+ "print \"IO/IREF=m*(1-5/100)\"#for large Beta\n",
+ "m=(1/(1-5.0/100)-1)*Beta-1;#Current transfer ratio\n",
+ "print round(m,2),\"Largest current transfer ratio \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "g8=IC1+IC1/Beta+IO/Beta\n",
+ "IO/IREF=m implies IC1=IO/m as IC1=IREF\n",
+ "IREF=IO*(1/m+1/m/Beta+1/Beta\n",
+ "IO/IREF=m/(1+1/Beta+m/Beta\n",
+ "IO/IREF=m*(1-5/100)\n",
+ "3.21 Largest current transfer ratio \n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9:Pg-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.9\n",
+ "\n",
+ "\n",
+ "Beta=20.0;#unitless\n",
+ "IObyIREF=1/(1+2/Beta);#Current gain\n",
+ "print round(IObyIREF,2),\" is Current gain \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.91 is Current gain \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.10:Pg-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.10\n",
+ "\n",
+ "IREF=2;#mA\n",
+ "IO=IREF;#mA\n",
+ "VA2=90.0;#V\n",
+ "Vo1=1.0;#V\n",
+ "Vo2=10.0;#V\n",
+ "ro2=VA2/IO;#kohm\n",
+ "delVO=Vo2-Vo1;#V\n",
+ "delIO=delVO/ro2;#mA\n",
+ "Change=delIO/IO*100;#%\n",
+ "print Change,\" % is Change in Io \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10.0 % is Change in Io \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.11:Pg-40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.11\n",
+ "\n",
+ "import math\n",
+ "VBE3=0.7;#V\n",
+ "VBE1=0.7;#V\n",
+ "IREF1=100.0;#micro A\n",
+ "IC1=IREF1;#micro A\n",
+ "IREF2=1.0;#mA\n",
+ "IC2=IREF2;#mA\n",
+ "Beta=200.0;#unitless\n",
+ "#IC2/IC1=(IS*exp(VBE2/VT))/(IS*exp(VBE1/VT))\n",
+ "VT=26.0;#mV\n",
+ "deltaVBE=VT*10**-3*math.log(IC2/IC1);#V(deltaVBE=VBE2-VBE1)\n",
+ "deltaVx=2*deltaVBE;#V\n",
+ "IO=IREF1/(1+2.0/(Beta**2+Beta));#micro A\n",
+ "delIO=IC1-IO;#micro A\n",
+ "Change=delIO/IO*100;#%\n",
+ "print round(Change,4),\" % is Change in Io\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.005 % is Change in Io\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.12:Pg-41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.12\n",
+ "\n",
+ "Iout=8;#micro A\n",
+ "VBE=0.7;#V\n",
+ "VCC=20.0;#V\n",
+ "Beta=80.0;#unitless\n",
+ "IREF=Iout*(1+2/Beta);#micro A\n",
+ "print IREF,\" is Reference current in micro A : \"\n",
+ "R=(VCC-VBE)/(IREF);#Mohm\n",
+ "print round(R,2),\" is Resistance in Mohm \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8.2 is Reference current in micro A : \n",
+ "2.35 is Resistance in Mohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.13:Pg-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.13\n",
+ "\n",
+ "Iout=1;#mA\n",
+ "VBE=0.7;#V\n",
+ "VCC=30.0;#V\n",
+ "Beta=100.0;#unitless\n",
+ "IREF=Iout*(1+2/Beta);#mA\n",
+ "print IREF,\" is Reference current in (mA) \"\n",
+ "R=(VCC-VBE)/(IREF);#kohm\n",
+ "print round(R,1),\"is Resistance in (kohm) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.02 is Reference current in (mA) \n",
+ "28.7 is Resistance in (kohm) \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14:Pg-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.14\n",
+ "\n",
+ "Iout=0.5;#mA\n",
+ "VBE=0.7;#V\n",
+ "VCC=5.0;#V\n",
+ "Beta=50.0;#unitless\n",
+ "IREF=Iout*(1+2/Beta);#mA\n",
+ "print IREF,\" is Reference current in (mA) \"\n",
+ "R=(VCC-VBE)/(IREF);#kohm\n",
+ "print round(R,3),\" is Resistance in (kohm) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.52 is Reference current in (mA) \n",
+ "8.269 is Resistance in (kohm) \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15:Pg-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.15\n",
+ "\n",
+ "Iout=8;#micro A\n",
+ "VBE=0.7;#V\n",
+ "VCC=20.0;#V\n",
+ "Beta=100.0;#unitless\n",
+ "IREF=Iout*(1+2/Beta/(Beta+1));#micro A\n",
+ "print round(IREF,2),\" is Reference current in (micro A) \"\n",
+ "R=(VCC-2*VBE)/(IREF);#Mohm\n",
+ "print round(R,2),\" is Resistance in (Mohm) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8.0 is Reference current in (micro A) \n",
+ "2.32 is Resistance in (Mohm) \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.16:Pg-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.16\n",
+ "\n",
+ "Beta=120;#unitless\n",
+ "VBE=0.7;#V\n",
+ "VCC=10.0;#V\n",
+ "R=5.6;#kohm\n",
+ "#IREF=IC1+I1;as Beta>>1\n",
+ "#I1=IC2+IB3;as Beta>>1\n",
+ "IREF=(VCC-VBE)/R;#mA\n",
+ "#IREF=IC*(2+1/Beta) or IREF=2*IC;as Beta>>1\n",
+ "IC=IREF/2;#mA\n",
+ "Iout=IC;#mA\n",
+ "print round(Iout,2),\"is Iout for the circuit in (mA) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.83 is Iout for the circuit in (mA) \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.17:Pg-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.17\n",
+ "import math\n",
+ "Iout=6;#micro A\n",
+ "IREF=1.2;#mA\n",
+ "VBE2=0.7;#V\n",
+ "VT=26.0;#mV\n",
+ "VCC=20.0;#V\n",
+ "Beta=120;#unitless\n",
+ "R=(VCC-VBE2)/IREF;#kohm\n",
+ "IC2=(IREF-Iout/Beta)/(1+1/Beta);#mA\n",
+ "RS=VT/Iout*math.log(IC2*1000/Iout);#kohm\n",
+ "print int(R),\"Kohm and \",round(RS,2),\"kohm are the Values of resistance R & Rs for widlar current source design\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "16 Kohm and 22.96 kohm are the Values of resistance R & Rs for widlar current source design\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.18:Pg-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.18\n",
+ "\n",
+ "import math\n",
+ "IREF=1;#mA\n",
+ "IO2=20.0;#micro A\n",
+ "IO3=40.0;#micro A\n",
+ "VBE1=0.7;#V\n",
+ "VT=26;#mV\n",
+ "VCC=10;#V\n",
+ "VEE=-VCC;#V\n",
+ "R=(VCC-VBE1-VEE)/IREF;#kohm\n",
+ "RE2=VT*10**-3/(IO2*10**-6)*math.log((IREF*10**-3)/(IO2*10**-6));#ohm\n",
+ "RE2=RE2/1000;#kohm\n",
+ "RE3=VT*10**-3/(IO3*10**-6)*math.log((IREF*10**-3)/(IO3*10**-6));#ohm\n",
+ "RE3=RE3/1000;#kohm\n",
+ "print R,\", \",round(RE2,3),\"and \", round(RE3,2),\" are Values of resistance R, RE2 & RE3 for widlar current source design in kohm \"\n",
+ "VBE2=VBE1-RE2*IO2*10**-3;#V\n",
+ "VBE3=VBE1-RE3*IO3*10**-3;#V\n",
+ "\n",
+ "print round(VBE2,3),\"and\",round(VBE3,3),\" are Values of VBE2 & VBE3 in V \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "19.3 , 5.086 and 2.09 are Values of resistance R, RE2 & RE3 for widlar current source design in kohm \n",
+ "0.598 and 0.616 are Values of VBE2 & VBE3 in V \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.19:Pg-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.19\n",
+ "\n",
+ "Beta=100.0;#unitless\n",
+ "VBE=0.715;#V\n",
+ "VEE=10.0;#V\n",
+ "R=5.6;#kohm\n",
+ "IREF=(VEE-VBE)/R;#mA\n",
+ "IC1=IREF/(1+2/Beta);#mA\n",
+ "print round(IC1,2),\" is Collector current in each transistor is equal as all are identical. It in (mA) \"\n",
+ "IRC=3*IC1;#mA\n",
+ "print round(IRC,2),\"is Current through resistance Rc in (mA) \"\n",
+ " # the answer is slightly different in textbook due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.63 is Collector current in each transistor is equal as all are identical. It in (mA) \n",
+ "4.88 is Current through resistance Rc in (mA) \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.20:Pg-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.20\n",
+ "\n",
+ "Vout=5.0;#V\n",
+ "Beta=180.0;#unitless\n",
+ "VBE=0.7;#V\n",
+ "VEE=10.0;#V\n",
+ "Vout=5;#V\n",
+ "R1=22.0;#kohm\n",
+ "R2=2.2;#kohm\n",
+ "IREF=(VEE-VBE)/R1;#mA\n",
+ "IC=(IREF-VBE/R2)/(1+2/Beta);#mA\n",
+ "IC1=IC*1000;#micro A(as VBE1=VBE2 IC1=IC2)\n",
+ "IC2=IC*1000;#micro A\n",
+ "print round(IC2,2),\",\",round(IC1,2),\" are Current IC1 & IC2 in micro A \"\n",
+ "RC=(VEE-Vout)/(IC1*10**-3);#kohm\n",
+ "print round(RC,2),\"is Value of Rc in (kohm) \"\n",
+ "\n",
+ "#Answer is different in the textbook due to approximation\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "103.4 , 103.4 are Current IC1 & IC2 in micro A \n",
+ "48.36 is Value of Rc in (kohm) \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.21:Pg-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 1.21\n",
+ "\n",
+ "AQ2byA1=0.5;\n",
+ "AQ3byA1=0.25;\n",
+ "AQ4byA1=0.125;\n",
+ "VBE=0.7;#V\n",
+ "VCC=15.0;#V\n",
+ "R=20.0;#kohm\n",
+ "IC1=(VCC-VBE)/R;#mA\n",
+ "IC2=IC1*AQ2byA1;#mA\n",
+ "IC3=IC1*AQ3byA1;#mA\n",
+ "IC4=IC1*AQ4byA1;#mA\n",
+ "print round(IC2,4),\",\",round(IC3,3),\"and\",round(IC4,3),\"are the Values of current IC2, IC3 & IC4 in (mA) \"\n",
+ "#Value of IC4 is displayed wrong in the textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.3575 , 0.179 and 0.089 are the Values of current IC2, IC3 & IC4 in (mA) \n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |