Commit dd2274ea authored by Inomjon's avatar Inomjon

Call cannection to app

parent 3ee829e6
{"v":"5.7.4","fr":60,"ip":0,"op":120,"w":800,"h":600,"nm":"Final comp","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"k":[{"s":[0],"t":0,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.73],"t":1,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.503],"t":2,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.321],"t":3,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[3.186],"t":4,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[4.1],"t":5,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[5.065],"t":6,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[6.084],"t":7,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7.16],"t":8,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[8.294],"t":9,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[9.49],"t":10,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[10.751],"t":11,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[12.081],"t":12,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.482],"t":13,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.96],"t":14,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.519],"t":15,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.163],"t":16,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.897],"t":17,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.728],"t":18,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.662],"t":19,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.705],"t":20,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.866],"t":21,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[30.152],"t":22,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[32.574],"t":23,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[35.143],"t":24,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[37.869],"t":25,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[40.767],"t":26,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[43.852],"t":27,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[47.141],"t":28,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.655],"t":29,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.415],"t":30,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[58.448],"t":31,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.785],"t":32,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[67.461],"t":33,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[72.516],"t":34,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[77.999],"t":35,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[83.964],"t":36,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[90.477],"t":37,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[97.608],"t":38,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[105.439],"t":39,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[114.051],"t":40,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.516],"t":41,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[133.878],"t":42,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.115],"t":43,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.102],"t":44,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[169.587],"t":45,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[182.207],"t":46,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[194.575],"t":47,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[206.372],"t":48,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[217.399],"t":49,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[227.577],"t":50,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[236.912],"t":51,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[245.455],"t":52,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[253.278],"t":53,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[260.457],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[267.063],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[273.162],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[278.81],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[284.057],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[288.946],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[293.514],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[297.794],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[301.812],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[305.592],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[309.157],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[312.523],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[315.708],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[318.725],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[321.587],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[324.305],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[326.89],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[329.351],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[331.695],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[333.93],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[336.063],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[338.1],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[340.046],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[341.907],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[343.687],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[345.389],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[347.02],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[348.581],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[350.076],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.508],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.881],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.197],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[355.458],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[356.666],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[357.825],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[358.936],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[360],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"p":{"a":0,"k":[400,300,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[90,90,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,-8.284],[8.284,0],[0,8.284]],"o":[[8.284,0],[0,8.284],[-8.284,0],[0,-8.284]],"v":[[0,-15],[15,0],[0,15],[-15,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.7490196078431373,0.6980392156862745,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-101],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"k":[{"s":[100,100],"t":0,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[100,100],"t":90,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"k":[{"s":[0],"t":3,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.73],"t":4,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.503],"t":5,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.321],"t":6,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[3.186],"t":7,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[4.1],"t":8,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[5.065],"t":9,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[6.084],"t":10,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7.16],"t":11,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[8.294],"t":12,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[9.49],"t":13,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[10.751],"t":14,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[12.081],"t":15,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.482],"t":16,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.96],"t":17,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.519],"t":18,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.163],"t":19,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.897],"t":20,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.728],"t":21,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.662],"t":22,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.705],"t":23,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.866],"t":24,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[30.152],"t":25,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[32.574],"t":26,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[35.143],"t":27,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[37.869],"t":28,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[40.767],"t":29,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[43.852],"t":30,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[47.141],"t":31,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.655],"t":32,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.415],"t":33,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[58.448],"t":34,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.785],"t":35,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[67.461],"t":36,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[72.516],"t":37,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[77.999],"t":38,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[83.964],"t":39,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[90.477],"t":40,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[97.608],"t":41,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[105.439],"t":42,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[114.051],"t":43,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.516],"t":44,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[133.878],"t":45,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.115],"t":46,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.102],"t":47,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[169.587],"t":48,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[182.207],"t":49,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[194.575],"t":50,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[206.372],"t":51,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[217.399],"t":52,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[227.577],"t":53,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[236.912],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[245.455],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[253.278],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[260.457],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[267.063],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[273.162],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[278.81],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[284.057],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[288.946],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[293.514],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[297.794],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[301.812],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[305.592],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[309.157],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[312.523],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[315.708],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[318.725],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[321.587],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[324.305],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[326.89],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[329.351],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[331.695],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[333.93],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[336.063],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[338.1],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[340.046],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[341.907],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[343.687],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[345.389],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[347.02],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[348.581],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[350.076],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.508],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.881],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[354.197],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[355.458],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[356.666],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"p":{"a":0,"k":[400,300,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[90,90,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,-8.284],[8.284,0],[0,8.284]],"o":[[8.284,0],[0,8.284],[-8.284,0],[0,-8.284]],"v":[[0,-15],[15,0],[0,15],[-15,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.7490196078431373,0.6980392156862745,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-101],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"k":[{"s":[80,80],"t":0,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[80,80],"t":90,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"k":[{"s":[0],"t":6,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.73],"t":7,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.503],"t":8,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.321],"t":9,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[3.186],"t":10,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[4.1],"t":11,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[5.065],"t":12,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[6.084],"t":13,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7.16],"t":14,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[8.294],"t":15,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[9.49],"t":16,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[10.751],"t":17,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[12.081],"t":18,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.482],"t":19,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.96],"t":20,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.519],"t":21,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.163],"t":22,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.897],"t":23,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.728],"t":24,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.662],"t":25,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.705],"t":26,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.866],"t":27,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[30.152],"t":28,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[32.574],"t":29,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[35.143],"t":30,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[37.869],"t":31,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[40.767],"t":32,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[43.852],"t":33,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[47.141],"t":34,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.655],"t":35,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.415],"t":36,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[58.448],"t":37,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.785],"t":38,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[67.461],"t":39,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[72.516],"t":40,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[77.999],"t":41,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[83.964],"t":42,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[90.477],"t":43,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[97.608],"t":44,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[105.439],"t":45,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[114.051],"t":46,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.516],"t":47,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[133.878],"t":48,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.115],"t":49,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.102],"t":50,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[169.587],"t":51,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[182.207],"t":52,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[194.575],"t":53,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[206.372],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[217.399],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[227.577],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[236.912],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[245.455],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[253.278],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[260.457],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[267.063],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[273.162],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[278.81],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[284.057],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[288.946],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[293.514],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[297.794],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[301.812],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[305.592],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[309.157],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[312.523],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[315.708],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[318.725],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[321.587],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[324.305],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[326.89],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[329.351],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[331.695],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[333.93],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[336.063],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[338.1],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[340.046],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[341.907],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[343.687],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[345.389],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[347.02],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[348.581],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[350.076],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[351.508],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[352.881],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"p":{"a":0,"k":[400,300,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[90,90,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,-8.284],[8.284,0],[0,8.284]],"o":[[8.284,0],[0,8.284],[-8.284,0],[0,-8.284]],"v":[[0,-15],[15,0],[0,15],[-15,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.7490196078431373,0.6980392156862745,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-101],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"k":[{"s":[64,64],"t":0,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[64,64],"t":90,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"k":[{"s":[0],"t":9,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.73],"t":10,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.503],"t":11,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.321],"t":12,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[3.186],"t":13,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[4.1],"t":14,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[5.065],"t":15,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[6.084],"t":16,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7.16],"t":17,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[8.294],"t":18,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[9.49],"t":19,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[10.751],"t":20,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[12.081],"t":21,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.482],"t":22,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.96],"t":23,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.519],"t":24,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.163],"t":25,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.897],"t":26,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.728],"t":27,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.662],"t":28,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.705],"t":29,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.866],"t":30,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[30.152],"t":31,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[32.574],"t":32,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[35.143],"t":33,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[37.869],"t":34,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[40.767],"t":35,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[43.852],"t":36,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[47.141],"t":37,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.655],"t":38,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.415],"t":39,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[58.448],"t":40,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.785],"t":41,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[67.461],"t":42,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[72.516],"t":43,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[77.999],"t":44,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[83.964],"t":45,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[90.477],"t":46,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[97.608],"t":47,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[105.439],"t":48,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[114.051],"t":49,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.516],"t":50,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[133.878],"t":51,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.115],"t":52,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.102],"t":53,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[169.587],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[182.207],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[194.575],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[206.372],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[217.399],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[227.577],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[236.912],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[245.455],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[253.278],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[260.457],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[267.063],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[273.162],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[278.81],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[284.057],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[288.946],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[293.514],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[297.794],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[301.812],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[305.592],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[309.157],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[312.523],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[315.708],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[318.725],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[321.587],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[324.305],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[326.89],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[329.351],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[331.695],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[333.93],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[336.063],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[338.1],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[340.046],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[341.907],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[343.687],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[345.389],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[347.02],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[348.581],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"p":{"a":0,"k":[400,300,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[90,90,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,-8.284],[8.284,0],[0,8.284]],"o":[[8.284,0],[0,8.284],[-8.284,0],[0,-8.284]],"v":[[0,-15],[15,0],[0,15],[-15,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.7490196078431373,0.6980392156862745,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-101],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"k":[{"s":[51.2,51.2],"t":0,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[51.2,51.2],"t":90,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"k":[{"s":[0],"t":12,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.73],"t":13,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.503],"t":14,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.321],"t":15,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[3.186],"t":16,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[4.1],"t":17,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[5.065],"t":18,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[6.084],"t":19,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7.16],"t":20,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[8.294],"t":21,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[9.49],"t":22,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[10.751],"t":23,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[12.081],"t":24,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.482],"t":25,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.96],"t":26,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.519],"t":27,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.163],"t":28,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.897],"t":29,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.728],"t":30,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.662],"t":31,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.705],"t":32,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.866],"t":33,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[30.152],"t":34,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[32.574],"t":35,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[35.143],"t":36,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[37.869],"t":37,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[40.767],"t":38,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[43.852],"t":39,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[47.141],"t":40,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[50.655],"t":41,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.415],"t":42,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[58.448],"t":43,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[62.785],"t":44,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[67.461],"t":45,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[72.516],"t":46,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[77.999],"t":47,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[83.964],"t":48,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[90.477],"t":49,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[97.608],"t":50,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[105.439],"t":51,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[114.051],"t":52,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.516],"t":53,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[133.878],"t":54,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.115],"t":55,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.102],"t":56,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[169.587],"t":57,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[182.207],"t":58,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[194.575],"t":59,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[206.372],"t":60,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[217.399],"t":61,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[227.577],"t":62,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[236.912],"t":63,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[245.455],"t":64,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[253.278],"t":65,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[260.457],"t":66,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[267.063],"t":67,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[273.162],"t":68,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[278.81],"t":69,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[284.057],"t":70,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[288.946],"t":71,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[293.514],"t":72,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[297.794],"t":73,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[301.812],"t":74,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[305.592],"t":75,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[309.157],"t":76,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[312.523],"t":77,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[315.708],"t":78,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[318.725],"t":79,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[321.587],"t":80,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[324.305],"t":81,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[326.89],"t":82,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[329.351],"t":83,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[331.695],"t":84,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[333.93],"t":85,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[336.063],"t":86,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[338.1],"t":87,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[340.046],"t":88,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[341.907],"t":89,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[343.687],"t":90,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"p":{"a":0,"k":[400,300,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[90,90,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.284,0],[0,-8.284],[8.284,0],[0,8.284]],"o":[[8.284,0],[0,8.284],[-8.284,0],[0,-8.284]],"v":[[0,-15],[15,0],[0,15],[-15,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.7490196078431373,0.6980392156862745,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-101],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"k":[{"s":[40.96,40.96],"t":0,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[40.96,40.96],"t":90,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
class UserModel {
int? id;
String? fullName;
String? email;
String? login;
UserModel({this.id, this.fullName, this.email, this.login});
UserModel.fromJson(Map<dynamic, dynamic> json) {
id = json['id'];
fullName = json['full_name'];
email = json['email'];
login = json['login'];
}
}
\ No newline at end of file
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';
part 'user_sign_up_event.dart';
part 'user_sign_up_state.dart';
class UserSignUpBloc extends Bloc<UserSignUpEvent, UserSignUpState> {
UserSignUpBloc() : super(UserSignUpInitial()) {
on<UserSignUpEvent>((event, emit) {
// TODO: implement event handler
UserSignUpBloc() : super(UserSignUpInitialState()) {
on<UserSignUpFetchEvent>((event, emit) {
emit(UserSignUpLoadedState());
});
}
}
part of 'user_sign_up_bloc.dart';
@immutable
abstract class UserSignUpEvent {}
abstract class UserSignUpEvent extends Equatable{}
class UserSignUpFetchEvent extends UserSignUpEvent{
@override
List<Object?> get props => [];
}
part of 'user_sign_up_bloc.dart';
@immutable
abstract class UserSignUpState {}
abstract class UserSignUpState extends Equatable{}
class UserSignUpInitial extends UserSignUpState {}
class UserSignUpInitialState extends UserSignUpState {
@override
List<Object?> get props => [];
}
class UserSignUpFetchState extends UserSignUpState{
@override
List<Object?> get props => [];
}
class UserSignUpLoadedState extends UserSignUpState{
@override
List<Object?> get props => [];
}
class UserSignUpExceptionState extends UserSignUpState{
final String message;
UserSignUpExceptionState({required this.message});
@override
List<Object?> get props => [message];
}
\ No newline at end of file
......@@ -16,10 +16,6 @@ import 'src/utils/configs.dart' as config;
void main() async {
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.light,
));
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
runApp(App());
}
......
// ignore_for_file: body_might_complete_normally_nullable
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:vmeeting/blocs/user_sign_up_bloc/user_sign_up_bloc.dart';
import 'package:vmeeting/service/routes/routes_name.dart';
import 'package:vmeeting/views/signin_view/signin_page.dart';
import 'package:vmeeting/views/main_view/main_page.dart';
import '../../src/controllers/enter_number_cont.dart';
import '../../views/signin_view/signin_page.dart';
import '../../views/signup_view/signup_page.dart';
import '../../views/splash_view/splash_screen.dart';
GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
......@@ -32,19 +36,22 @@ class MainNavigator extends StatelessWidget {
case MainRoutes.splash_screen:
builder = (BuildContext _) => SplashScreen(controller: controller);
break;
case MainRoutes.user_signin_page:
case MainRoutes.main_page:
builder = (BuildContext _) => MainPage(controller: controller);
break;
case MainRoutes.sign_in_page:
builder = (BuildContext _) => UserSignInPage(controller: controller);
break;
// case MainRoutes.splash_screen:
// builder = (BuildContext _) => MultiBlocProvider(
// providers: [
// BlocProvider<CallPageBloc>(
// create: (context) => CallPageBloc(),
// ),
// ],
// child: MyMainPage(controller: _controller,),
// );
// break;
case MainRoutes.user_signup_page:
builder = (BuildContext _) => MultiBlocProvider(
providers: [
BlocProvider<UserSignUpBloc>(
create: (context) => UserSignUpBloc(),
),
],
child: UserSignUpPage(controller: controller),
);
break;
}
if (builder != null) {
return MaterialPageRoute(builder: builder, settings: settings);
......
......@@ -2,5 +2,7 @@
class MainRoutes {
static const String splash_screen = "splash_screen";
static const String user_signin_page = "user_signin_page";
static const String user_signup_page = "user_signup_page";
static const String main_page = "main_page";
static const String sign_in_page = "sign_in_page";
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:vmeeting/src/constants/colors_const.dart';
ThemeData getAppTheme(BuildContext context, bool idDark) {
SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: idDark ? Brightness.light : Brightness.dark,
));
return ThemeData(
scaffoldBackgroundColor: idDark ? Colors.black : Colors.white,
scaffoldBackgroundColor: idDark ? ColorConst.appMainBackgroundColor : ColorConst.appSecondWhiteColor,
textTheme: GoogleFonts.latoTextTheme(idDark ? ThemeData.dark().textTheme : ThemeData.light().textTheme),
switchTheme: SwitchThemeData(
thumbColor: MaterialStateProperty.all(
......@@ -12,7 +18,7 @@ import 'package:google_fonts/google_fonts.dart';
listTileTheme: ListTileThemeData(
iconColor: idDark ? Colors.orange : Colors.purple),
appBarTheme: AppBarTheme(
backgroundColor: idDark ? Colors.black : Colors.white,
iconTheme: IconThemeData(color: idDark ? Colors.white : Colors.black54)),
backgroundColor: idDark ? ColorConst.appMainBackgroundColor : ColorConst.appSecondWhiteColor,
iconTheme: IconThemeData(color: idDark ? ColorConst.appMainBackgroundColor : ColorConst.appSecondWhiteColor,)),
);
}
\ No newline at end of file
......@@ -6,6 +6,12 @@ class ColorConst {
static Color appBackgroundColor = const Color(0xffbec6f4);
static Color appSecondWhiteColor = const Color(0xfff1f3f4);
static Color appGreenColor = const Color(0xff7bcdd1);
static Color appBleckColor = const Color(0xff000000);
static Color appMainBackgroundColor = Color(0xFF25242a);
static Color appMainColorBak = Color(0xFF35353f);
static Color appGreanColor = Color(0xFFb2b7ce);
static Color appRedColor = Color(0xFFff0000);
......
......@@ -4,5 +4,8 @@ class NumberController {
final StreamController<bool> themeController = StreamController<bool>.broadcast();
Sink<bool> get inputTheme => themeController.sink;
Stream<bool> get outputTheme => themeController.stream;
final StreamController<bool> elevatedButtonController = StreamController<bool>.broadcast();
Sink<bool> get inputElevatedButton => elevatedButtonController.sink;
Stream<bool> get outputElevatedButton=> elevatedButtonController.stream;
}
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:vmeeting/src/constants/colors_const.dart';
class AppUtils {
static Widget buttonLoader = SizedBox(
width: 30,
height: 30,
child: CircularProgressIndicator(
strokeWidth: 3,
color: ColorConst.appWhiteColor,
),
);
static void showSnackBar(BuildContext context, String message) {
final snackdemo = SnackBar(
content:
Center(child: Text(message,
style: GoogleFonts.lato(
textStyle: Theme.of(context).textTheme.bodyMedium,
color: ColorConst.appWhiteColor,
fontStyle: FontStyle.normal,),
textAlign: TextAlign.center,
),),
backgroundColor: ColorConst.appGreenColor,
elevation: 30,
behavior: SnackBarBehavior.floating,
margin: const EdgeInsets.all(50),
duration: const Duration(milliseconds: 600),
shape: const StadiumBorder(),
);
ScaffoldMessenger.of(context).showSnackBar(snackdemo);
}
}
import 'package:flutter/material.dart';
import 'package:vmeeting/src/extension/context_extensions.dart';
import '../constants/colors_const.dart';
import '../widgets/big_text_widget.dart';
import '../widgets/small_text.dart';
void errorMessage(BuildContext context) async {
showDialog(
context: context,
builder: (BuildContext context) {
return MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
child: Dialog(
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(16.0))),
insetPadding: const EdgeInsets.only(left: 20, right: 20),
backgroundColor: Colors.white,
child: StatefulBuilder(builder: (contex, dialogSetState) {
return SizedBox(
width: double.infinity,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const SizedBox(),
InkWell(
onTap: () async {
Navigator.of(context).pop(false);
},
child: Padding(
padding:
const EdgeInsets.only(right: 8.0, top: 8),
child: Icon(Icons.cancel,
color: ColorConst.appMainColorBak),
),
),
],
),
SmallText(text: "There is something wrong with you try again",
fontWidget: FontWeight.bold,
size: context.h*0.02,
textAlign: TextAlign.center,),
const SizedBox(height: 10),
const BigText(text: "❌",size: 60),
const SizedBox(height: 10),
Container(
margin: const EdgeInsets.symmetric(horizontal: 12),
child: Column(children: [
ElevatedButton(
style: ElevatedButton.styleFrom(
foregroundColor: Colors.white,
backgroundColor: ColorConst.appGreenColor,
disabledForegroundColor: Colors.grey.withOpacity(0.38),
disabledBackgroundColor: Colors.grey.withOpacity(0.12),
),
onPressed: () async {
Navigator.of(context).pop(false);
},
child: const BigText(
text: "Ok",
fontWidget: FontWeight.bold,
size: 16,
)
),
SizedBox(height: context.h*0.02),
],),
)
],
),
// child:
);
}),
),
);
});
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:lottie/lottie.dart';
// ignore: must_be_immutable
class CustomLoading extends StatelessWidget{
Color? color;
CustomLoading({Key? key, this.color}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: 200,
height: 200,
alignment: AlignmentDirectional.center,
child: Lottie.asset('assets/loading.json'),
);
}
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:lottie/lottie.dart';
import 'package:vmeeting/src/extension/context_extensions.dart';
import '../../constants/colors_const.dart';
import '../big_text_widget.dart';
import '../small_text.dart';
class AppExceptionsWidget extends StatelessWidget {
final String message;
final String authName;
const AppExceptionsWidget({
super.key,
required this.message,
required this.authName,
});
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: 200,
height: 200,
alignment: AlignmentDirectional.center,
child: Lottie.asset('assets/internet_error.json'),
),
const SizedBox(height: 50),
Padding(
padding: const EdgeInsets.only(left: 20.0, right: 8),
child: SmallText(
text: message,
size: 18,
fontWidget: FontWeight.w600,
textAlign: TextAlign.center),
),
const SizedBox(height: 50),
ElevatedButton(
style: ElevatedButton.styleFrom(
foregroundColor: Colors.white, backgroundColor: ColorConst.appBackgroundColor, disabledForegroundColor: Colors.grey.withOpacity(0.38), disabledBackgroundColor: Colors.grey.withOpacity(0.12),
),
onPressed: () {
Navigator.of(context).pushReplacementNamed(authName);
},
child: SizedBox(
width: context.w * 0.8,
height: context.h * 0.06,
child: Center(
child: BigText(
text: "Exception",
fontWidget: FontWeight.bold,
color: ColorConst.appWhiteColor,
size: 16,
),
),
),
),
],
);
}
}
import 'package:flutter/material.dart';
extension HeightWidthContext on BuildContext {
MediaQueryData get mq => MediaQuery.of(this);
double get h => mq.size.height;
double get w => mq.size.width;
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:vmeeting/src/constants/colors_const.dart';
import 'package:vmeeting/src/widgets/big_text_widget.dart';
import '../../src/controllers/enter_number_cont.dart';
class HomePage extends StatelessWidget {
final NumberController controller;
const HomePage({super.key, required this.controller});
@override
Widget build(BuildContext context) {
return Center(
child:BigText( text: "Salom",color: ColorConst.appMainBackgroundColor,)
);
}
}
\ No newline at end of file
import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:flutter/material.dart';
import 'package:vmeeting/src/controllers/enter_number_cont.dart';
import 'package:vmeeting/views/home_view/home_page.dart';
import 'package:vmeeting/views/profile_view/profile_page.dart';
import 'package:vmeeting/views/users_view/users_page.dart';
import '../../src/constants/colors_const.dart';
class MainPage extends StatefulWidget {
final NumberController controller;
const MainPage({super.key, required this.controller});
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
int current_index = 0;
late List<Widget> pages = [
HomePage(controller: widget.controller),
AllUsersViewPage(controller: widget.controller),
ProfilePage(controller: widget.controller)
];
void OnTapped(int index) {
setState(() {
current_index = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: Container(
height: 80,
padding: const EdgeInsets.all(8),
child: ClipRRect(
borderRadius: BorderRadius.circular(50),
child: CurvedNavigationBar(
height: 50,
backgroundColor: ColorConst.appGreanColor,
color: ColorConst.appGreenColor,
buttonBackgroundColor: ColorConst.appGreenColor,
onTap: OnTapped,
items: const <Widget>[
Icon(Icons.home),
Icon(Icons.search),
Icon(Icons.person)
],
),
),
),
body: pages[current_index],
);
}
}
import 'package:flutter/material.dart';
import '../../src/controllers/enter_number_cont.dart';
class ProfilePage extends StatelessWidget {
final NumberController controller;
const ProfilePage({super.key, required this.controller});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text("Profil Page"),
),
);
}
}
\ No newline at end of file
import 'package:connectycube_sdk/connectycube_calls.dart';
import 'package:flutter/material.dart';
import 'package:vmeeting/src/controllers/enter_number_cont.dart';
import 'package:vmeeting/src/extension/context_extensions.dart';
import '../../app_models/user_model/user_model.dart';
import '../../service/routes/routes_name.dart';
import '../../src/constants/colors_const.dart';
import '../../src/utils/app_utils.dart';
import '../../src/utils/show_dialogs.dart';
import '../../src/widgets/big_text_widget.dart';
import '../../src/widgets/custom_loading/customloading.dart';
import '../../src/widgets/textfiled_widgets/auth_text_fild.dart';
class UserSignInPage extends StatefulWidget {
final NumberController controller;
......@@ -10,20 +21,132 @@ class UserSignInPage extends StatefulWidget {
}
class _UserSignInPageState extends State<UserSignInPage> {
late bool isDarkMode = false;
final _loginControlle = TextEditingController(text: "");
final _loginFocusNode = FocusNode();
final _passwordControlle = TextEditingController(text: "");
final _passwordFocusNode = FocusNode();
late bool theme = false;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Switch(
value: theme,
onChanged: (val){
theme = val;
widget.controller.inputTheme.add(val);
},
),
),
body: buildUI(),
);
}
Widget buildUI(){
return Container(
margin: EdgeInsets.symmetric(horizontal: context.w * 0.06),
child: SingleChildScrollView(
child: Column(
children: [
SizedBox(height: context.h * 0.06),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Switch.adaptive(
value: isDarkMode,
activeColor: ColorConst.appGreenColor,
onChanged: (value) {
isDarkMode = value;
widget.controller.inputTheme.add(value);
},
),
],),
SizedBox(height: context.h * 0.12),
BigText(
text: "Sign In",
size: context.h * 0.04,
fontWidget: FontWeight.bold,
),
SizedBox(height: context.h * 0.1),
AuthTextFild(
lableName: "Login",
borderRadius: 10,
elevation: 1,
color: Colors.grey.withOpacity(0.2),
focusNode: _loginFocusNode,
textEditingController: _loginControlle,
),
SizedBox(height: context.h * 0.03),
AuthTextFild(
lableName: "Password",
borderRadius: 10,
elevation: 1,
color: Colors.grey.withOpacity(0.2),
focusNode: _passwordFocusNode,
textEditingController: _passwordControlle,
),
SizedBox(height: context.h * 0.16),
buildButtons(),
],
),
)
);
}
Widget buildButtons() {
return StreamBuilder(stream: widget.controller.outputElevatedButton,
builder: (BuildContext context, snapshot){
return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ElevatedButton(
style: ElevatedButton.styleFrom(
foregroundColor: Colors.white,
backgroundColor: ColorConst.appGreenColor,
disabledForegroundColor: Colors.grey.withOpacity(0.38),
disabledBackgroundColor: Colors.grey.withOpacity(0.12),
),
onPressed: () async {
if(_loginControlle.text.isNotEmpty && _passwordControlle.text.isNotEmpty){
widget.controller.inputElevatedButton.add(true);
userSigIn();
}else{
AppUtils.showSnackBar(context, "PLEASE ENTER THE SAME VALUE AGAIN");
}
},
child: SizedBox(
width: context.w * 0.8,
height: context.h * 0.06,
child: Center(
child: snapshot.data ?? false
? AppUtils.buttonLoader
: const BigText(
text: "Sin Up",
fontWidget: FontWeight.bold,
size: 16,
),
),
),
),
],
);
});
}
Future<void> userSigIn() async {
CubeUser user = CubeUser(
login: _loginControlle.text,
password: _passwordControlle.text,);
signIn(user).then((cubeUser) {
UserModel(
id: cubeUser.id,
login: cubeUser.login,
email: cubeUser.email,
fullName: cubeUser.fullName
);
print("Shu yerda $cubeUser");
widget.controller.inputElevatedButton.add(false);
Navigator.pushReplacementNamed(context, MainRoutes.main_page);
})
.catchError((error){
widget.controller.inputElevatedButton.add(false);
errorMessage(context);
print(error);
});
}
Widget buildLoading() {
return Center(child: CustomLoading());
}
}
import 'package:connectycube_sdk/connectycube_chat.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:vmeeting/blocs/user_sign_up_bloc/user_sign_up_bloc.dart';
import 'package:vmeeting/src/controllers/enter_number_cont.dart';
import 'package:vmeeting/src/extension/context_extensions.dart';
import 'package:vmeeting/src/utils/app_utils.dart';
import '../../app_models/user_model/user_model.dart';
import '../../service/routes/routes_name.dart';
import '../../src/constants/colors_const.dart';
import '../../src/utils/show_dialogs.dart';
import '../../src/widgets/big_text_widget.dart';
import '../../src/widgets/custom_loading/customloading.dart';
import '../../src/widgets/exceptions/app_exeptions.dart';
import '../../src/widgets/textfiled_widgets/auth_text_fild.dart';
class UserSignUpPage extends StatefulWidget {
final NumberController controller;
const UserSignUpPage({super.key, required this.controller});
@override
State<UserSignUpPage> createState() => _UserSignUpPageState();
}
class _UserSignUpPageState extends State<UserSignUpPage> {
late UserSignUpBloc userSignUpBloc;
late bool isDarkMode = false;
final _loginControlle = TextEditingController(text: "Flutter2000");
final _loginFocusNode = FocusNode();
final _passwordControlle = TextEditingController(text: "Flutter2000");
final _passwordFocusNode = FocusNode();
final _emailControlle = TextEditingController(text: "muxtorovinomjon0227@gmail.com");
final _emailFocusNode = FocusNode();
final _fullNameControlle = TextEditingController(text: "Muxtorov Inomjon");
final _fullNameFocusNode = FocusNode();
@override
void initState() {
userSignUpBloc = BlocProvider.of<UserSignUpBloc>(context);
userSignUpBloc.add(UserSignUpFetchEvent());
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: BlocConsumer<UserSignUpBloc, UserSignUpState>(
listener: (context, state) {},
builder: (context, state) {
if (state is UserSignUpInitialState) {
return buildLoading();
}
if (state is UserSignUpLoadedState) {
return buildUI();
}
if (state is UserSignUpFetchState) {
return const Center(
child: AppExceptionsWidget(
message: "Exception",
authName: MainRoutes.user_signup_page));
}
if (state is UserSignUpExceptionState) {
return const Center(
child: AppExceptionsWidget(
message: "Exception",
authName: MainRoutes.user_signup_page));
}
return const Center(child: Text("AloVoice"));
},
),
);
}
Widget buildUI(){
return Container(
margin: EdgeInsets.symmetric(horizontal: context.w * 0.06),
child: SingleChildScrollView(
child: Column(
children: [
SizedBox(height: context.h * 0.06),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Switch.adaptive(
value: isDarkMode,
activeColor: ColorConst.appGreenColor,
onChanged: (value) {
isDarkMode = value;
widget.controller.inputTheme.add(value);
},
),
],),
SizedBox(height: context.h * 0.1),
BigText(
text: "Sign Up",
size: context.h * 0.04,
fontWidget: FontWeight.bold,
),
SizedBox(height: context.h * 0.1),
AuthTextFild(
lableName: "Email",
borderRadius: 10,
elevation: 1,
color: Colors.grey.withOpacity(0.2),
type: TextInputType.emailAddress,
focusNode: _emailFocusNode,
textEditingController: _emailControlle,
),
SizedBox(height: context.h * 0.03),
AuthTextFild(
lableName: "Login",
borderRadius: 10,
elevation: 1,
color: Colors.grey.withOpacity(0.2),
focusNode: _loginFocusNode,
textEditingController: _loginControlle,
),
SizedBox(height: context.h * 0.03),
AuthTextFild(
lableName: "Password",
borderRadius: 10,
elevation: 1,
color: Colors.grey.withOpacity(0.2),
focusNode: _passwordFocusNode,
textEditingController: _passwordControlle,
),
SizedBox(height: context.h * 0.03),
AuthTextFild(
lableName: "FullName",
borderRadius: 10,
elevation: 1,
color: Colors.grey.withOpacity(0.2),
focusNode: _fullNameFocusNode,
textEditingController: _fullNameControlle,
),
SizedBox(height: context.h * 0.06),
SizedBox(height: context.h * 0.06),
buildButtons(),
],
),
)
);
}
Widget buildButtons() {
return StreamBuilder(stream: widget.controller.outputElevatedButton,
builder: (BuildContext context, snapshot){
return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ElevatedButton(
style: ElevatedButton.styleFrom(
foregroundColor: Colors.white,
backgroundColor: ColorConst.appGreenColor,
disabledForegroundColor: Colors.grey.withOpacity(0.38),
disabledBackgroundColor: Colors.grey.withOpacity(0.12),
),
onPressed: () async {
Navigator.pushReplacementNamed(context, MainRoutes.main_page);
if(_fullNameControlle.text.isNotEmpty && _emailControlle.text.isNotEmpty && _loginControlle.text.isNotEmpty && _passwordControlle.text.isNotEmpty){
widget.controller.inputElevatedButton.add(true);
userSigUp();
}else{
AppUtils.showSnackBar(context, "PLEASE ENTER THE SAME VALUE AGAIN");
}
},
child: SizedBox(
width: context.w * 0.8,
height: context.h * 0.06,
child: Center(
child: snapshot.data ?? false
? AppUtils.buttonLoader
: const BigText(
text: "Sin Up",
fontWidget: FontWeight.bold,
size: 16,
),
),
),
),
],
);
});
}
Future<void> userSigUp() async {
CubeUser user = CubeUser(
login: _loginControlle.text,
password: _passwordControlle.text,
email: _emailControlle.text,
fullName: _fullNameControlle.text,);
signUp(user).then((cubeUser) {
UserModel(
id: cubeUser.id,
login: cubeUser.login,
email: cubeUser.email,
fullName: cubeUser.fullName
);
print("Shu yerda $cubeUser");
widget.controller.inputElevatedButton.add(false);
})
.catchError((error){
widget.controller.inputElevatedButton.add(false);
errorMessage(context);
print(error);
});
}
Widget buildLoading() {
return Center(child: CustomLoading());
}
}
......@@ -30,7 +30,7 @@ class _SplashScreenState extends State<SplashScreen>
..forward()
..addStatusListener((status) async {
if (status == AnimationStatus.completed) {
Navigator.of(context).pushReplacementNamed(MainRoutes.user_signin_page);
Navigator.of(context).pushReplacementNamed(MainRoutes.sign_in_page);
}
});
_curvedAnimation =
......
import 'package:flutter/material.dart';
import '../../src/controllers/enter_number_cont.dart';
class AllUsersViewPage extends StatelessWidget {
final NumberController controller;
const AllUsersViewPage({super.key, required this.controller});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text("Users Page"),
),
);
}
}
......@@ -129,6 +129,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.6"
curved_navigation_bar:
dependency: "direct main"
description:
name: curved_navigation_bar
sha256: ea6412d00c5d83501bbf1cf9d1ac2ff11a20fbaf910c103c95ace7de82910334
url: "https://pub.dev"
source: hosted
version: "1.0.3"
dart_webrtc:
dependency: transitive
description:
......@@ -328,6 +336,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
lottie:
dependency: "direct main"
description:
name: lottie
sha256: a93542cc2d60a7057255405f62252533f8e8956e7e06754955669fd32fb4b216
url: "https://pub.dev"
source: hosted
version: "2.7.0"
matcher:
dependency: transitive
description:
......
......@@ -49,6 +49,8 @@ dependencies:
upgrader: ^8.1.0
flutter_bloc: ^8.1.3
equatable: ^2.0.5
lottie: ^2.4.0
curved_navigation_bar: ^1.0.3
dev_dependencies:
flutter_test:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment