

"""simple docstring"""





from __future__ import annotations

import json

import requests
from bsa import BeautifulSoup
from fake_useragent import UserAgent

__UpperCamelCase  :      Any							      =		{'''UserAgent''': UserAgent().random}

def   __SCREAMING_SNAKE_CASE  (      A_ ):
	lowerCAmelCase__	:						int  				=	script.contents[0]
	lowerCAmelCase__	:						Tuple  				=	json.loads(data[data.find('''{"config"''' ) : -1] )
	return info["entry_data"]["ProfilePage"][0]["graphql"]["user"]







class 				SCREAMING_SNAKE_CASE					:






					"""simple docstring"""



					def __init__(       self			:				Any   ,lowercase_			:				Dict		):
						lowerCAmelCase__	:						Any  				=	F'https://www.instagram.com/{username}/'
						lowerCAmelCase__	:						List[str]  				=	self.get_json()







					def        __lowerCAmelCase (       self			:				Optional[int]		):
						lowerCAmelCase__	:						int  				=	requests.get(self.url   ,headers=lowercase_		).text
						lowerCAmelCase__	:						Optional[Any]  				=	BeautifulSoup(lowercase_   ,'''html.parser'''		).find_all('''script'''		)
						try:
							return extract_user_profile(scripts[4]		)
						except (json.decoder.JSONDecodeError, KeyError):
							return extract_user_profile(scripts[3]		)







					def __repr__(       self			:				Optional[Any]		):
						return F'{self.__class__.__name__}(\'{self.username}\')'







					def __str__(       self			:				Union[str, Any]		):
						return F'{self.fullname} ({self.username}) is {self.biography}'







					@property
					def        __lowerCAmelCase (       self			:				Optional[Any]		):
						return self.user_data["username"]







					@property
					def        __lowerCAmelCase (       self			:				int		):
						return self.user_data["full_name"]







					@property
					def        __lowerCAmelCase (       self			:				Optional[int]		):
						return self.user_data["biography"]







					@property
					def        __lowerCAmelCase (       self			:				List[str]		):
						return self.user_data["business_email"]







					@property
					def        __lowerCAmelCase (       self			:				Optional[Any]		):
						return self.user_data["external_url"]







					@property
					def        __lowerCAmelCase (       self			:				Tuple		):
						return self.user_data["edge_followed_by"]["count"]







					@property
					def        __lowerCAmelCase (       self			:				Any		):
						return self.user_data["edge_follow"]["count"]







					@property
					def        __lowerCAmelCase (       self			:				Dict		):
						return self.user_data["edge_owner_to_timeline_media"]["count"]







					@property
					def        __lowerCAmelCase (       self			:				List[str]		):
						return self.user_data["profile_pic_url_hd"]







					@property
					def        __lowerCAmelCase (       self			:				str		):
						return self.user_data["is_verified"]







					@property
					def        __lowerCAmelCase (       self			:				Optional[int]		):
						return self.user_data["is_private"]

def   __SCREAMING_SNAKE_CASE  (      A_ = "github" ):
	import os

	if os.environ.get('''CI''' ):
		return  # test failing on GitHub Actions
	lowerCAmelCase__	:						int  				=	InstagramUser(A_ )
	assert instagram_user.user_data
	assert isinstance(instagram_user.user_data						,     A_ )
	assert instagram_user.username == username
	if username != "github":
		return
	assert instagram_user.fullname == "GitHub"
	assert instagram_user.biography == "Built for developers."
	assert instagram_user.number_of_posts > 1_50
	assert instagram_user.number_of_followers > 12_00_00
	assert instagram_user.number_of_followings > 15
	assert instagram_user.email == "support@github.com"
	assert instagram_user.website == "https://github.com/readme"
	assert instagram_user.profile_picture_url.startswith('''https://instagram.''' )
	assert instagram_user.is_verified is True
	assert instagram_user.is_private is False


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							__UpperCamelCase  :      Any							      =		InstagramUser('''github''')
							print(instagram_user)
							print(F'''{instagram_user.number_of_posts = }''')
							print(F'''{instagram_user.number_of_followers = }''')
							print(F'''{instagram_user.number_of_followings = }''')
							print(F'''{instagram_user.email = }''')
							print(F'''{instagram_user.website = }''')
							print(F'''{instagram_user.profile_picture_url = }''')
							print(F'''{instagram_user.is_verified = }''')
							print(F'''{instagram_user.is_private = }''')











def      lowerCamelCase_						(				_UpperCamelCase ,				_UpperCamelCase )		->						List[str]:






				"""simple docstring"""


				print('''\nThe shortest path matrix using Floyd Warshall algorithm\n''' )
				for i in range(_UpperCamelCase ):
								for j in range(_UpperCamelCase ):
												if dist[i][j] != float('''inf''' ):
																print(int(dist[i][j] ) ,				end='''\t''' )
												else:
																print('''INF''' ,				end='''\t''' )
								print()






def      lowerCamelCase_						(				_UpperCamelCase ,				_UpperCamelCase )		->						Union[str, Any]:






				"""simple docstring"""


				snake_case_						:    int				=  [[float('''inf''' ) for _ in range(_UpperCamelCase )] for _ in range(_UpperCamelCase )]

				for i in range(_UpperCamelCase ):
								for j in range(_UpperCamelCase ):
												snake_case_						:    Dict				=  graph[i][j]

												# check vertex k against all other vertices (i, j)
				for k in range(_UpperCamelCase ):
								# looping through rows of graph array
								for i in range(_UpperCamelCase ):
												# looping through columns of graph array
												for j in range(_UpperCamelCase ):
																if (
																    dist[i][k] != float('''inf''' )
																    and dist[k][j] != float('''inf''' )
																    and dist[i][k] + dist[k][j] < dist[i][j]
																):
																				snake_case_						:    List[Any]				=  dist[i][k] + dist[k][j]

				_print_dist(_UpperCamelCase ,				_UpperCamelCase )
				return dist, v


if __name__ == "__main__":
	lowerCAmelCase_    =				int(input('''Enter number of vertices: '''))
	lowerCAmelCase_    =				int(input('''Enter number of edges: '''))

	lowerCAmelCase_    =				[[float('''inf''') for i in range(v)] for j in range(v)]

	for i in range(v):
		lowerCAmelCase_    =				0.0

		# src and dst are indices that must be within the array size graph[e][v]
		# failure to follow this will result in an error
	for i in range(e):
		print('''\nEdge ''', i + 1)
		lowerCAmelCase_    =				int(input('''Enter source:'''))
		lowerCAmelCase_    =				int(input('''Enter destination:'''))
		lowerCAmelCase_    =				float(input('''Enter weight:'''))
		lowerCAmelCase_    =				weight

	floyd_warshall(graph, v)

	# Example Input
	# Enter number of vertices: 3
	# Enter number of edges: 2

	# # generated graph from vertex and edge inputs
	# [[inf, inf, inf], [inf, inf, inf], [inf, inf, inf]]
	# [[0.0, inf, inf], [inf, 0.0, inf], [inf, inf, 0.0]]

	# specify source, destination and weight for edge #1
	# Edge  1
	# Enter source:1
	# Enter destination:2
	# Enter weight:2

	# specify source, destination and weight for edge #2
	# Edge  2
	# Enter source:2
	# Enter destination:1
	# Enter weight:1

	# # Expected Output from the vertice, edge and src, dst, weight inputs!!
	# 0		INF	INF
	# INF	0	2
	# INF	1	0
