import sys
sys.setrecursionlimit(1 << 25)

n = int(input())
tree = [[] for _ in range(n + 1)]
for _ in range(n - 1):
    u, v = map(int, input().split())
    tree[u].append(v)
    tree[v].append(u)

k = int(input())
V = set(map(int, input().split()))

is_in_v = [False] * (n + 1)
for u in V:
    is_in_v[u] = True

cnt_v = [0] * (n + 1)
lca_cnt = [0] * (n + 1)

def dfs(u, p):
    cur = 1 if is_in_v[u] else 0
    child_sum_sq = 0
    for v in tree[u]:
        if v != p:
            child_v = dfs(v, u)
            cur += child_v
            child_sum_sq += child_v * child_v
    cnt_v[u] = cur
    lca_cnt[u] = cur * cur - child_sum_sq
    return cur

dfs(1, 0)

print(' '.join(map(str, lca_cnt[1:])))