<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_port_side(self):
 """Updates the initial position of the port The port side is ignored but calculated from the port position. Then the port position is limited to the four side lines of the state. """

        from rafcon.utils.geometry import point_left_of_line

        p = (self._initial_pos.x, self._initial_pos.y)
        nw_x, nw_y, se_x, se_y = self.get_adjusted_border_positions()
        if point_left_of_line(p, (nw_x, nw_y), (se_x, se_y)):  # upper right triangle of state
            if point_left_of_line(p, (nw_x, se_y), (se_x, nw_y)):  # upper quarter triangle of state
                self._port.side = SnappedSide.TOP
                self.limit_pos(p[0], se_x, nw_x)
            else:  # right quarter triangle of state
                self._port.side = SnappedSide.RIGHT
                self.limit_pos(p[1], se_y, nw_y)
        else:  # lower left triangle of state
            if point_left_of_line(p, (nw_x, se_y), (se_x, nw_y)):  # left quarter triangle of state
                self._port.side = SnappedSide.LEFT
                self.limit_pos(p[1], se_y, nw_y)
            else:  # lower quarter triangle of state
                self._port.side = SnappedSide.BOTTOM
                self.limit_pos(p[0], se_x, nw_x)

        self.set_nearest_border()